我的 .htaccess 中有以下内容可将非 www 重定向到 www:
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]
编辑 2
我现在已经尝试过了:
RewriteCond %{SERVER_PORT} ^8080$
RewriteCond %{HTTP_HOST} !^(.*)\.mysite\.com:8080$
RewriteRule ^(.*)$ http://www.mysite.com:8080/$1 [R=301,L]
在尝试将端口 8080 上的请求再次重定向到端口 8080 时,此操作失败并重定向到www.mysite.com
没有端口。如果端口是 8080,那么有用的是什么都不做,因为这仅用于测试,所以我不需要非 www/www 重定向,例如
RewriteCond %{SERVER_PORT} ^8080$
RewriteRule [Break here and do nothing more]