2012-07-19 12 views
6

私はHTTP_HOSTを使用してのRewriteRuleと異なるポート

(私は必要なものである)、それはホストヘッダーとは異なることになると私はSERVER_NAMEを使用することはできませんのRewriteRuleにHTTP_HOSTヘッダを使用する必要がありますが、ポート を変更

ですmod_rewriteのHTTP_HOST変数の:portをトリムする方法はありますか?

+0

Apacheを別のポートで実行しているのですか? – Devraj

+0

%{SERVER_PORT}には、サーバーのポートが含まれています。あなたの質問をよりわかりやすいように編集できますか? –

+0

適切な外部サーバーにリダイレクトするには、http_hostを使用する必要があります。この仮想サイトはポート80にありません – arcyqwerty

答えて

9

はい、ホストヘッダーからポートを切り捨てることができます。ちょうど%{HTTP_HOST}と一致し、%1逆参照を使用してください。たとえば:

RewriteCond %{HTTP_HOST} ^([^:]+)(:[0-9]+)?$ 
RewriteCond %1 ^the.hostname.com$ [NC] 

はOK

です:

RewriteCond %{HTTP_HOST} ^([^:]+)(:[0-9]+)?$ 
RewriteRule^http://%1:12345/ [R,L] 

ちょうど%1後方参照のみRewriteCondの最初のパラメータではなく、試合で使用することができることを心に留めておきます

RewriteCond %{HTTP_HOST} ^([^:]+)(:[0-9]+)?$ 
RewriteCond %{REQUEST_URI} ^%1 

は無効です

+0

私は私の問題を解決したと思います。ありがとう! :) – arcyqwerty

関連する問題