【问题标题】:htaccess server error when removing www from url从 url 中删除 www 时出现 htaccess 服务器错误
【发布时间】:2011-12-29 11:50:08
【问题描述】:

.htacess 错误

<IfModule mod_rewrite.c>

RewriteEngine On

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

RewriteBase /

RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]





</IfModule>

仅当我添加此行时才会出现错误。

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

我必须添加它,因为我的网站现在没有加载 www。我想让它加载。

【问题讨论】:

  • 错误是什么?它在您的错误日志中说明了什么?
  • 尝试将重写库移至上述所有重写规则。代码看起来不错。

标签: .htaccess no-www


【解决方案1】:

使用此代码,您的 htaccess 问题将得到解决:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    # no www
    RewriteCond %{HTTPS} !=on
    RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
    RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
</IfModule>

如果您在使用 www 加载网站时遇到问题,那是因为从您网站的主机中丢失了 www CNAME 记录。您应该从您的网站托管包的“DNS 区域编辑器”中检查名称服务器,并为 www 添加所需的记录,如下所示:

NAME:www.yoursite.com.   TTL:14400    TYPE:CNAME    RECORD:yoursite.com.

这将使您的网站在有和没有 www 的情况下都能正常工作。

【讨论】:

    【解决方案2】:

    试试这个

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

    【讨论】:

    • http_host 结尾不包含斜杠,而只包含域名。但是避免点是一个很好的建议。
    猜你喜欢
    • 2016-10-01
    • 2011-09-24
    • 2021-05-11
    • 2020-03-26
    • 1970-01-01
    • 1970-01-01
    • 2012-05-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多