动态规则上的Mod_rewrite不起作用

时间:2015-06-07 15:26:02

标签: apache mod-rewrite

我有几个网站并使用相同的mod_rewrite。我想为它添加两个附加条件,并基于我在这里找到的许多解决方案,似乎都没有。

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

我的网站使用以下解决方案 domain.com转发到www.domain.com

我想在上述条件中添加以下两个条件。

  1. 删除尾部斜杠。如果我有www.domain.com/它会删除 不幸的是,由于某些原因,如果有的话,那就是斜线 最后有多个斜线,它不是www.domain.com //

  2. 从www.domain.com/index.html

  3. 删除index.html

    通过这种方式可以实现这种动态。如果我在域名上使用建议,我没有问题。一旦我添加http://www.%{HTTP_HOST}%{REQUEST_URI},一切都会变得不稳定。

1 个答案:

答案 0 :(得分:0)

我使用此重写将domain.com重定向到www.domain.com。没问题//

RewriteEngine on

RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com$1 [R,L]

#this could work for you (untested)
RewriteCond %{HTTP_HOST} !^www.\$ [NC]
RewriteCond %{HTTP_HOST}   !^$
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}$1 [R,L]

#redirect /index.html to /
RewriteRule ^/index.html / [R=301,L]