的.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]
答
在这里回答我自己的问题。但基本上试图在.htaccess中引导端口不起作用。
我使用的清漆,并希望操纵请求,但因为上光油是一个端口和Apache是另一个就很难说了是实际上回事。
总之,我放弃了。
你也有类似'的RewriteCond%{SERVER_PORT}没有运气^ 8080 $'?你也介意发布你当前的RewriteRules? – F* 2012-08-07 08:01:21
其他行现在处于编辑状态。这些* ARE *是有问题的行,因为将它剥离到这两行中会导致相同的行为。 – 2012-08-07 08:26:14
F*,这个'RewriteCond%{SERVER_PORT}^8080 $'会将所有端口重写为8080?我需要它来维持端口,无论是80或8080不重写所有端口为8080 – 2012-08-07 08:31:20