2012-08-07 112 views
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] 
+0

你也有類似'的RewriteCond%{SERVER_PORT}沒有運氣^ 8080 $'?你也介意發佈你當前的RewriteRules? – Fabian 2012-08-07 08:01:21

+0

其他行現在處於編輯狀態。這些* ARE *是有問題的行,因爲將它剝離到這兩行中會導致相同的行爲。 – 2012-08-07 08:26:14

+0

Fabian,這個'RewriteCond%{SERVER_PORT}^8080 $'會將所有端口重寫爲8080?我需要它來維持端口,無論是80或8080不重寫所有端口爲8080 – 2012-08-07 08:31:20

回答

0

在這裏回答我自己的問題。但基本上試圖在.htaccess中引導端口不起作用。

我使用的清漆,並希望操縱請求,但因爲上光油是一個端口和Apache是​​另一個就很難說了是實際上回事。

總之,我放棄了。