htaccess重写规则不重定向

时间:2014-05-18 18:53:43

标签: regex apache .htaccess mod-rewrite url-rewriting

我最近重新编写了一个网站,我有以下一行,非常适合制作友好的网址。

RewriteRule ^mydir/([^/]+)/?$ /page.php?menu=mydir&vid=$1 [L,QSA]

但是,我发现有一些旧的链接,它们看起来完全不同,我也需要重写。

所以我试过了......

RewriteRule ^mydir/detail/\?id=([^/]+)?$ /page.php?menu=mydir&vid=$1 [L,QSA]
RewriteRule ^mydir/([^/]+)/?$ /page.php?menu=mydir&vid=$1 [L,QSA]

包含/detail/的网址不会重写。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您无法使用RewriteRule匹配查询字符串。将您的规则更改为:

RewriteCond %{QUERY_STRING} ^id=([^&]+) [NC]
RewriteRule ^mydir/detail/?$ /page.php?menu=mydir&vid=%1 [L,QSA]

RewriteRule ^mydir/([^/]+)/?$ /page.php?menu=mydir&vid=$1 [L,QSA]