mod_rewrite忽略.htaccess中的行

时间:2015-02-03 18:39:45

标签: apache .htaccess mod-rewrite

我有以下.htaccess文件 它忽略了我的重写规则?

AddDefaultCharset utf-8
Options +FollowSymLinks
RewriteEngine On
#this is the line not working
RewriteRule ^/news/([0-9]+) /news-article.php?id=$1 [L,NC]
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://www.%{HTTP_HOST}%{REQUEST_URI}

我真的很想改写规则。我发现的所有例子都说这应该有效。谢谢你的帮助!!

1 个答案:

答案 0 :(得分:0)

如果这些规则在htaccess文件中,则需要从正则表达式中删除前导斜杠。用于匹配的URI具有自Apache版本2以来剥离的前导斜杠。

RewriteRule ^news/([0-9]+) /news-article.php?id=$1 [L,NC]

此外,您希望此规则低于您拥有的另一条规则,因为该规则会重定向浏览器,这会破坏此重写。