重写以始终在域中使用www(甚至在子页面上)

时间:2012-10-22 06:21:17

标签: .htaccess ubuntu amazon-ec2

我已将以下内容添加到我的.htaccess中,以便将来自http://domain.com的所有访问者正确重定向到http://www.domain.com ...但我仍然无法让它与子页面一起使用...即{ {3}}尚未重定向到http://domain.com/subpage

以下是我现在在htaccess中所拥有的内容:

<Files wp-config.php>
order allow,deny
deny from all
</Files>

<Files .htaccess>
order allow,deny
deny from all
</Files>

<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 [L,R]


</IfModule>

所以问题是我还需要在我的htaccess中添加或更新以使其工作吗?

非常感谢您的建议!

1 个答案:

答案 0 :(得分:0)

在完成路由到index.php之后,您的重定向发生,它需要在任何路由规则执行之前发生。尝试交换它们:

RewriteEngine On
RewriteBase /

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

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

(还添加了[NC]标志,因此未在主机名匹配中检查案例)