的.htaccess重定向忽略端口

问题描述:

我有以下的在我的.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? – F* 2012-08-07 08:01:21

+0

其他行现在处于编辑状态。这些* ARE *是有问题的行,因为将它剥离到这两行中会导致相同的行为。 – 2012-08-07 08:26:14

+0

F*,这个'RewriteCond%{SERVER_PORT}^8080 $'会将所有端口重写为8080?我需要它来维持端口,无论是80或8080不重写所有端口为8080 – 2012-08-07 08:31:20

在这里回答我自己的问题。但基本上试图在.htaccess中引导端口不起作用。

我使用的清漆,并希望操纵请求,但因为上光油是一个端口和Apache是​​另一个就很难说了是实际上回事。

总之,我放弃了。