htaccess强制www并保持跟踪网址

时间:2012-04-29 11:59:57

标签: .htaccess mod-rewrite

我使用以下内容重定向我的非www。网址使用www。:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

</IfModule>
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "http://www.domain.com/"
</IfModule>

但是,如果有人访问domain.com/abc-123,它会重定向到www.domain.com并丢失剩余的网址。

对此有何帮助?我如何设置它以便它不会删除网址的结尾?

米罗

1 个答案:

答案 0 :(得分:1)

只需交换规则的顺序即可。由于第一个(WP)规则正在剥离路径,因此在应用第二个规则时,路径将为空。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "http://www.domain.com/"
</IfModule>