我知道在这个论坛和互联网上已经有很多关于这个问题的答案。但我尝试的一切都不适合我,我不知道为什么。所以这就是我问这个问题的原因。
我正在使用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设置是否可能必须对此进行操作?
答案 0 :(得分:1)
您需要在Plesk控制面板上进行更改,访问相关域并将non-www
更改为www
或将其设置为none
。
您查找的选项位于subscription > Web Hosting Settings > Preferred Domain
。
如果您将其设置为none
,则可以使用.htaccess
规则。