2012-11-19 105 views
-1

我有問題重寫URL以隱藏查詢字符串。我試圖改寫:如何編寫重寫規則來隱藏查詢字符串?

http://seynol.tk/comments?post_referrel_id=16 

到:

http://seynol.tk/comments only 

這是我到目前爲止已經試過:

RewriteBase/
Options +FollowSymlinks -MultiViews 
RewriteEngine on 
# to make `/path/index.php` to /path/ 
RewriteCond %{THE_REQUEST} ^GET\s(.*/)index\.php [NC] 
RewriteRule . %1 [NE,R=301,L] 

RewriteCond %{THE_REQUEST} ^GET\s.+\.php [NC] 
RewriteRule ^(.+)\.php$ /$1 [NE,R=301,L,NC] 

RewriteCond %{REQUEST_URI} !\.php$ [NC] 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule . %{REQUEST_URI}.php [L] 

回答

0

所有你需要做的是檢查查詢字符串設置並用空的查詢字符串進行重定向。

RewriteCond %{QUERY_STRING} post_referrel_id 
RewriteRule (.*) $1? [R=301,L] 

如果你想要把轉診ID的URL,默默地把它轉換成一個查詢字符串,你會使用它代替:

RewriteRule ^/comments/([0-9]+)$ /comments?post_referrel_id=$1 

這是假設的帖子ID是數字。該URL看起來是這樣的:http://sevnol.tk/comments/16

+0

嘿不工作.....實際上,我已經試過這是擦拭查詢字符串不隱藏......它任何人都幫助........ .. – user1835722

+0

是的,這樣做的目的是刪除查詢字符串。你無法真正隱藏它。如果你不想讓它成爲URL的一部分(會話,cookies,POST等),還有其他方法可以傳遞變量,但是你不能簡單地通過htaccess將其切斷,並且仍然讓你的腳本識別它。 – Wige

+0

我的代碼是成功隱藏.php擴展名,但我聽說這是一種隱藏查詢字符串tooo的方法,比如 abc.php/fg?56 - to ---- abc.php/56 .... – user1835722

相關問題