【问题标题】:Force www. in URL name through .htaccess强制 www。通过 .htaccess 在 URL 名称中
【发布时间】:2014-03-03 15:58:34
【问题描述】:

我知道这个论坛和互联网上已经有很多关于这个问题的答案。但是我尝试的一切都不适合我,我不知道为什么。所以这就是我问这个问题的原因。

我正在使用 ExpressionEngine CMS 运行一个网站。要从 URL 中删除 index.php,有一个小的 .htaccess 规则,它在下面提到并且工作正常。

RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]

在 htaccess 文件中使用此代码一切正常。但现在我想在 URL 中强制使用 www.,因为当 URL 没有 www. 时,一些 AJAX 脚本无法正常工作。所以我在这个论坛上找到了一些主题:

在我看来,最后一个有最明确的解决方案,所以我将它添加到我的 .htaccess 文件中。

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

我的.htaccess 文件现在看起来像这样:

RewriteEngine on

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

# remove index.php
RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]

然而,这给了我一个ERR_TOO_MANY_REDIRECTS 错误。

我尝试了所有其他类型的方法,但我不断收到此错误,我不知道为什么。我试图通过 htaccess 强制 www. 的一切都不起作用或给我这个错误。

发生了什么事? DNS设置是否可能与此有关?

【问题讨论】:

  • 是否有任何其他代码/规则从 URL 中删除 www
  • 我不知道!此外,如果我键入 www.domain.nl,它会(重定向)到 domain.nl。 www.domain.nl > domain.nl 有一个 DNS CNAME 规则。可以这样吗..?
  • 是的,肯定是这样,因为 CNAME 和重写规则相互矛盾。
  • 我将此 CNAME 记录值的值更改为 www.domain.nl。现在等着看这是否有效!
  • 您需要在 plesk 控制面板上更改它,您访问有问题的域并将非 www 更改为 www 或将其设置为无,在 subscription > Web Hosting Settings > Preferred Domain 上。

标签: .htaccess mod-rewrite


【解决方案1】:

您需要在 Plesk 控制面板上进行更改,您访问相关域并将non-www 更改为www 或将其设置为none

您要查找的选项位于subscription > Web Hosting Settings > Preferred Domain

如果您将其设置为none,那么您可以使用.htaccess 规则。

【讨论】:

  • Jep,我在非 www。从来没有想过这个选项!谢谢!
猜你喜欢
  • 1970-01-01
  • 2011-09-14
  • 2018-05-04
  • 1970-01-01
  • 1970-01-01
  • 2011-08-25
  • 2016-04-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多