mod_rewrite混淆

时间:2011-03-05 02:08:04

标签: .htaccess mod-rewrite

我有一些重写的​​网址指向原始动态网址,如下所示:

http://mysite.com/profile/edit/ => http://mysite.com/index.php?action=profile&sa=edit

这是htaccess中的重写:

RewriteRule ^([^/]*)/([^/]*)/$ /index.php?action=$1&sa=$2 [L]

^所以这很好用。

现在我还有以下网址:

http://mysite.com/search/editorials/ => http://mysite.com/index.php?action=search&category=editorials

在上面发布的上一个重写规则之后的重写:

RewriteRule ^([^/]*)/([^/]*)/$ /index.php?action=$1&category=$2 [L]

^这不起作用。我检查了$ _SERVER数组,这是重定向到查询字符串的内容:

action=search&sa=editorials

到目前为止,我已经在这一天工作了一天,我尝试了各种教程,但没有运气。我如何让它工作?

任何帮助表示赞赏。谢谢。

1 个答案:

答案 0 :(得分:1)

这两次重写是相互冲突的。你需要在两者之间创造某种类型的区别

RewriteRule ^ 帐户 /(。)/([^ /] )/ $ /index.php?action=$1&sa=$2 [L] < / p>

RewriteRule ^([^ /] )/([^ /] )/ $ /index.php?action=$1&category=$2 [L]

使参数保持一致并使用单次重写:

RewriteRule ^([^ /] )/([^ /] )/ $ /index.php?action=$1&parm1=$2 [L]