【问题标题】:Redirect from .htaccess does not work从 .htaccess 重定向不起作用
【发布时间】:2013-09-20 12:07:56
【问题描述】:

我有一个网站,我想让它始终显示为 www.mysite .com 我将该代码放在 .htaccess 中:

<IfModule mod_rewrite.c>
    RewriteEngine On

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

现在网址显示为 www,但网站未显示浏览器说“此网页有重定向循环”

注意:.htcaccess 没有任何代码,但我写了这几行

我做错了什么还是我错过了什么???请帮忙

编辑:

在我添加上述代码之前,.htaccess 有以下代码,但不直接指向 www,我将其删除:

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

RewriteCond %{QUERY_STRING} ^m=1$
RewriteRule (.*) $1? [R=permanent]

# END WordPress

可以更新以解决我的问题吗?

【问题讨论】:

  • 如果没有其他 .htaccess 并且此 .htaccess 中没有其他规则,那么上面的代码应该可以工作。换个浏览器试试。
  • 我在 Mozilla 和 Chrome 中尝试过,但没有发生同样的问题
  • 您的重写模式是否已激活?如果你在 linux a2enmod 上重写
  • 确保 .htaccess 已启用(将抓取文本放入 .htaccess 并查看浏览器中是否出现 500 错误)。
  • 500 错误正在运行,因此 .htaccess 已启用

标签: php wordpress apache .htaccess mod-rewrite


【解决方案1】:

如果你是在windows服务器上做的,如果是windows,你必须为linux创建web.config文件n,它应该是.htaccess

【讨论】:

    【解决方案2】:

    好的,Wordpress 也在那里。确保做这 2 件事:

    1. 将您的 301 规则高于 WP 的规则,即在 RewriteBase 行下方
    2. 更新 WP 设置以使您的站点地址为 www

    【讨论】:

      【解决方案3】:
      RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
      RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [L,R=301]
      

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

      【讨论】:

        猜你喜欢
        • 2015-03-07
        • 2015-08-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-03
        • 2013-01-30
        • 2013-04-06
        相关资源
        最近更新 更多