htaccess重写规则忽略请求uri

时间:2017-05-20 10:49:27

标签: .htaccess

我正在使用Apache / 2.4.10并且我正在使用这些重写规则

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteCond %{REQUEST_FILENAME} !\.(htm|php|js|css|htc|png|gif|jpe?g|ico|xml|csv|txt|swf|flv|mp4|webm|ogv|mp3|ogg|oga|eot|otf|tt[cf]|woff2?|svgz?|pdf|gz)$
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule .* index.php [L]
  RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
  RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
</IfModule>

如果我导航(在Chrome或Firefox中测试)到“example.com/my-page”,则会将Url重写为“www.example.com/index.php”(主页而不是我的页面)。< / p>

我尝试用以下代码替换最后两行:

RewriteCond %{HTTP_HOST} ^example\.com$
RewriteRule ^(.*) http://www.example.com%{REQUEST_URI}

我也改变了重写条件/规则的顺序(即将最后两行放在RewriteBase正下方......

我确信这完全符合它在类似网络服务器上应有的效果。

请帮助,我在俯瞰什么?

非常感谢你。

0 个答案:

没有答案