1

我有一个网站结构:

- root
  - .htaccess
  - wordpress installation
  - folder xxx
    - wordpress

在我的 .htaccess 中,我有这个规则:

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

问题是它不允许我进去:

www.mywebsite.it/xxx 

因为发生循环重定向。如果我删除规则,一切都会好起来的。我该如何修改它?我希望如果用户键入 mywebsite.it/ 或 mywebsite.it/xxx,它会被重定向到 www 版本。

我的.htaccess:

    <IfModule mod_rewrite.c>

RewriteEngine On

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

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

</IfModule>

非常感谢。

4

1 回答 1

1

这条规则是孤立地工作的,但 Wordpress 的东西正在劫持它。稍微修改的规则:

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
  1. 确保这是输入后的第一规则RewriteEngine OnDOCUMENT_ROOT/.htaccess
  2. 确保WP permalink structure您有站点地址,www.否则 WP 将再次将其发送回非 www
  3. 如果您有任何.htaccess以下根目录,那么他们应该在以下行下面添加RewriteEngine On一行:

    RewriteOptions Inherit
    

还要在不同的浏览器中测试以避免 301 缓存。

于 2013-09-28T12:32:32.407 回答