RewriteRule с использованием хоста HTTP и другого порта

Мне нужно использовать заголовок HTTP_HOST в перезаписи, но изменить порт Я не могу использовать ИМЯ_СЕРВЕРА, поскольку он будет отличаться от заголовка хоста (что мне нужно)

есть ли способ обрезать: порт переменной HTTP_HOST для mod_rewrite?

1 ответов


Да, вы можете обрезать порт с заголовка. Просто матч против %{HTTP_HOST} и использовать %1 backreference. Например:

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

просто имейте в виду, что %1 backreference может использоваться только в первом параметре RewriteCond, а не в матче:

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

ОК

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

не в порядке