2012-07-16 130 views
0

我不知道如何使用.htaccess文件播放從URL的.htaccess:隱藏URL變量

更改/隱藏變量,我想用的WordPress的.htaccess文件 我的.htaccess文件中已包含此腳本:

# BEGIN WordPress 

    <IfModule mod_rewrite.c> 

    RewriteEngine On 
    RewriteBase /my_site/ 
    RewriteRule ^index\.php$ - [L] 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule . /my_site/index.php 

    [L] 
    </IfModule> 

    # END WordPress 

我有網址

http://localhost/my_site/project-detail/?pro_id=7 

,我想不管是隱藏pro_id = 7

http://localhost/my_site/project-detail/ 

但可能是能夠趕上這個$ _GET [ 'pro_id']在我的PHP腳本文件。

http://localhost/my_site/project-detail/7 

我也試過

RewriteRule ^project-detail/(.*) /project-detail/?pro_id=$1 
+0

你有什麼嘗試?你用什麼術語來搜索關於這個的教程? – lanzz 2012-07-16 09:58:56

+0

http://roshanbh.com.np/2008/03/url-rewriting-examples-htaccess.html – 2012-07-16 10:04:26

回答

0

您是否嘗試過這樣的事情:

RewriteEngine On 
RewriteRule ^project-detail/([0-9]+)$ project-detail/?pro_id=$1 
+0

是的,但它不會更改爲http:// localhost/my_site/project-detail/2 – 2012-07-16 10:15:06

+0

URL重寫doesn'不改變你的源代碼,你必須修改你顯示你的URL的方式 – Nicolas 2012-07-16 10:24:05

0

你可以嘗試添加這些的RewriteBase /my_site/指令上面,因爲他們需要在你的WordPress的東西之前。

首先,你可以直接訪問實際的請求重定向的URL,而不查詢字符串:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /my_site/project-detail/?\?pro_id=([^&\ ]+)&?([^\ ]*) 
RewriteRule^/my_site/project-detail/%1?%2 [R=301,L] 

這將使它所以像這樣的URL:http://localhost/my_site/project-detail/?pro_id=7得到重定向http://localhost/my_site/project-detail/7和網址像http://localhost/my_site/project-detail/?pro_id=7&other=param得到重定向http://localhost/my_site/project-detail/7?other=param。如果您不需要任何額外的參數,請從規則的目標中刪除該%。這使得瀏覽器的地址欄變爲URL而沒有pro_id查詢字符串。現在我們必須在內部重寫回查詢字符串:

RewriteRule ^my_site/project-detail/([^/]+)$ /my_site/project-detail/?pro_id=$1 [QSA,L] 

所以內部的URI被改寫回/my_site/project-detail/?pro_id=7但瀏覽器的地址欄仍然有乾淨尋找URL。