使用查询字符串重写URL失败

时间:2016-09-08 18:18:11

标签: .htaccess mod-rewrite

我在这里阅读了一些帖子以及谷歌搜索几个小时,并一直试图让以下工作:

<IfModule mod_rewrite.c>
    Options All
    RewriteEngine   on
    RewriteRule ^content/tagged/(\w+)/?$ /content.html?tagged=$1 [L]
</IfModule>

我已经确认安装了mod_rewrite,并确保正确设置了Allow Override。 (Apache已重新启动!)

<Directory "C:/xampp/htdocs">
    Options All
    AllowOverride All
    Require all granted
</Directory>

http://example.com/content/tagged/science应支持重写http://example.com/content.html?tagged=science,但完全失败。

这个重写应该非常简单,除非我做了一些骨头的事情。我做过一些蠢货吗?

编辑:我也尝试了以下内容:

RewriteRule ^content/tagged/([a-z]+)/?$ /content.html?tagged=$1 [L]

1 个答案:

答案 0 :(得分:2)

关闭MultiViews,因为源网址以/content开头,并且有一个匹配的content.html文件。还要确保启动目标网址而不/将请求转发到当前目录的content.html文件。

Options All -MultiViews
RewriteEngine on

RewriteRule ^content/tagged/(\w+)/?$ content.html?tagged=$1 [NC,L,QSA]

使用的标志是:

NC  - Ignore case
QSA - Query String Append
L   - Last Rule

参考文献: