2012-11-19 176 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

相关问题