2
我有以下的在我的.htaccess到非www重定向到www:的.htaccess重定向忽略端口
RewriteCond %{HTTP_HOST} !^(.*)\.mysite\.com$
RewriteRule ^(.*)$ http://www.mysite.com/$1 [R=301,L]
這工作得很好,但www.mysite.com:8080
訪問重定向到www.mysite.com
移除從我上面的紋路。 htaccess文件導致訪問端口8080正常工作。
所以我知道這是這兩行導致了問題。
我想還是有這樣的影響,非www重定向到www,但我想重定向到維護端口。
我已經試過各種版本以上使用%{SERVER_PORT}
但沒有運氣,他們要麼不工作或導致重定向循環。
感謝 傑克
編輯
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}/index.html !-f
RewriteCond %{REQUEST_FILENAME}/index.php !-f
RewriteRule . index.php/$1 [L]
EDIT 2
現在我已經試過這樣:
RewriteCond %{SERVER_PORT} ^8080$
RewriteCond %{HTTP_HOST} !^(.*)\.mysite\.com:8080$
RewriteRule ^(.*)$ http://www.mysite.com:8080/$1 [R=301,L]
在attem pt重新將端口8080上的請求重定向到端口8080,這會失敗並重定向到沒有端口的www.mysite.com
。如果端口是8080,什麼是有用的將是什麼都不做,因爲這僅用於測試,因此我不需要非www/www重定向,例如,
RewriteCond %{SERVER_PORT} ^8080$
RewriteRule [Break here and do nothing more]
你也有類似'的RewriteCond%{SERVER_PORT}沒有運氣^ 8080 $'?你也介意發佈你當前的RewriteRules? – Fabian 2012-08-07 08:01:21
其他行現在處於編輯狀態。這些* ARE *是有問題的行,因爲將它剝離到這兩行中會導致相同的行爲。 – 2012-08-07 08:26:14
Fabian,這個'RewriteCond%{SERVER_PORT}^8080 $'會將所有端口重寫爲8080?我需要它來維持端口,無論是80或8080不重寫所有端口爲8080 – 2012-08-07 08:31:20