2

非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]
4

1 に答える 1

0

ここで自分の質問に答えます。しかし、基本的に .htaccess でポートを指定しようとしてもうまくいきませんでした。

私は Varnish を使用していて、リクエストを操作したいと考えていますが、Varnish が 1 つのポートにあり、Apache が別のポートにあるため、実際にここで行われていることを伝えるのは困難でした。

要するに諦めました。

于 2012-08-10T22:07:03.723 に答える