htaccess: удалить порт из HTTP_HOST - PullRequest
0 голосов
/ 05 октября 2019

Мне нужна переменная окружения %{HTTP_HOST} без порта.

У меня есть dev-сервер под портом 8080 и prod-сервер под 80.

Это правило не работает на dev, потому что %{HTTP_HOST} на dev-сервере, например: myhost.com:8080

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{DOCUMENT_ROOT}/cache/%{HTTP_HOST}/%{REQUEST_URI}/index.html -f
RewriteRule ^(.*) "/cache/%{HTTP_HOST}/%{REQUEST_URI}/index.html" [L]
</IfModule>

есть ли способ сделать HTTP_HOST без порта?

1 Ответ

2 голосов
/ 05 октября 2019

Конечно, вы можете просто проанализировать фактический хост из комбинации хоста и порта:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ([^:]+)
RewriteCond %{DOCUMENT_ROOT}/cache/%1/%{REQUEST_URI}/index.html -f
RewriteRule ^(.*) "/cache/%{1}/%{REQUEST_URI}/index.html" [L]
...