非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 へのアクセスが機能します。
したがって、これらの2行が問題の原因であることはわかっています。
この影響を引き続き受けたいのですが、非 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]