我有一个像example.test.com
. 该网站由三个不同的 html 文件组成:
- 索引.html
- 产品.html
- 联系人.html
因此,如果用户输入example.test.com/index.html
的 url 应该被重定向到example.test.com
.
也example.test.com/index
应该成为example.test.com
example.test.com/contact.html
应该是example.test.com/contact
等等。
www
他们在 url 之前应该是 no 。
我想出了以下规则:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^example.test.com$ [NC]
RewriteRule ^(.*)$ http://example.test.com/$1 [L,R=301]
RewriteCond %{SCRIPT_FILENAME}/ -d
RewriteCond %{SCRIPT_FILENAME}.html !-f
RewriteRule [^/]$ %{REQUEST_URI}/ [R=301,L]
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^(.+)\.html$ /$1 [R=301,L]
RewriteCond %{SCRIPT_FILENAME}.html -f
RewriteRule [^/]$ %{REQUEST_URI}.html [QSA,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.(html?|php)\ HTTP/
RewriteRule ^index\.(html?|php)$ http://example.test.com/ [R=301,L]
在 Firefox 中,一切都按预期工作,但在 Chrome 和 Internet Explorerexample.test.com/index.html
中仅重定向到example.test.com/index
,我不知道为什么。