无法停止mod_rewrite在浏览器中覆盖url

时间:2014-06-08 21:41:11

标签: mod-rewrite

我的htaccess文件中有以下代码

RewriteRule ^post/(.*)$ index.php?p=$1 [QSA,R]

这几乎可以正常工作,但在重写后将查询字符串附加到url中。我不想要这个。如果我删除R-Flag,即使我删除了两个标志,它也不会工作。

我想覆盖

/post/123 => index.php?p=123

/page/123 => index.php?page_id=123

/category/123 => index.php?cat=123

但在浏览器网址中显示/post/123

1 个答案:

答案 0 :(得分:0)

如果您不希望更改网址,则无法重定向[R]

试试这个:

RewriteRule ^post/(.*)$ index.php?p=$1 [L,QSA]
RewriteRule ^page/(.*)$ index.php?page_id=$1 [L,QSA]
RewriteRule ^category/(.*)$ index.php?cat=$1 [L,QSA]

您还应附加[L]标志,以终止处理更多规则。