我必须做一些重定向 - index.html和index.php到/.
我可以使用以下行将www.domain.com/index.html
和www.domain.com/index.php
重定向到www.domain.com
:
RewriteRule ^index\.(php|html?)$ http://www.mydomain.com/ [R=301,L]
但是我仍然遇到这样的页面问题:
www.domain.com/directory/index.html
- 返回 200 OK www.domain.com/directory/index.php
- 返回 300多个选项(不知道原因)是否可以将它们重定向到www.domain.com/directory/
并使用一个规则执行所有操作?
如果这有帮助,请点击我的.htaccess文件中的内容:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
## Redirecd index.html & php to /
RewriteRule ^index\.(php|html?)$ http://www...mydomain...com/ [R=301,L]
## 301 Redirect from non-www to www version
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
## Return 404 status code and display 404.html
ErrorDocument 404 /404.html
</IfModule>
答案 0 :(得分:2)
试试这段代码:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
## Redirecd index.html & php to /
RewriteCond %{THE_REQUEST} /index\.(html|php) [NC]
RewriteRule ^(.*?)index\.(?:html|php)$ /$1 [L,R=302,NC,NE]
## 301 Redirect from non-www to www version
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
## Return 404 status code and display 404.html
ErrorDocument 404 /404.html
</IfModule>
答案 1 :(得分:0)
您可以尝试使用以下
替换您的第一个重写版RewriteRule ^/?(.+/)?index\.(php|html?)$ /$1 [R=301,L]
答案 2 :(得分:0)
请试试这个。这适用于任何目录。
RewriteCond %{THE_REQUEST} ^.*/index\.(html|php)
RewriteRule ^(.*)index\.(html|php)$ http://www.domain.com/$1 [R=301,L]