我知道這個問題已經在這個論壇和互聯網上的一堆答案。但是我所嘗試的一切都不適合我,我不知道爲什麼。所以這就是我問這個問題的原因。部隊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 - how to force "www." in a generic way?
- https://expressionengine.stackexchange.com/questions/9853/site-doesnt-work-with-www-at-the-start-of-the-address/9864#9864
- https in htaccess and order of rules (using Expression Engine)
最後在我看來是最明確的解決方案,所以我說這我的.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' – anubhava
不是我所知道的!此外,如果我輸入www.domain.nl它(重定向)到domain.nl。對於www.domain.nl> domain.nl有一個DNS CNAME規則。這可以嗎?? – Timo002
是的,因爲CNAME和重寫規則是相互矛盾的。 – anubhava