2014-03-03 30 views
0

我知道這個問題已經在這個論壇和互聯網上的一堆答案。但是我所嘗試的一切都不適合我,我不知道爲什麼。所以這就是我問這個問題的原因。部隊www。在URL名稱通過.htaccess

我使用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

是否有任何其他代碼/規則從URL中刪除'www' – anubhava

+0

不是我所知道的!此外,如果我輸入www.domain.nl它(重定向)到domain.nl。對於www.domain.nl> domain.nl有一個DNS CNAME規則。這可以嗎?? – Timo002

+0

是的,因爲CNAME和重寫規則是相互矛盾的。 – anubhava

回答

1

您需要在Plesk控制面板上對其進行更改,然後才能訪問相關域並將non-www更改爲www或將其設置爲none

您查找的選項位於subscription > Web Hosting Settings > Preferred Domain

如果您將其設置爲none,則可以使用.htaccess規則。

+0

Jep,iy在非www上。從來沒有想過這個選擇!謝謝! – Timo002