С помощью mod_rewrite я могу указать RewriteBase внутри RewriteCond?

Я хотел бы, чтобы мой файл.htaccess определял другую RewriteBase в зависимости от того, находится ли файл.htaccess на моем локальном компьютере или на веб-сервере. Это код mod_rewrite, который я пробовал, однако он не работал:

RewriteCond %{HTTP_HOST} ^localhost:8080
RewriteBase /example/
RewriteCond %{HTTP_HOST} ^www.example.com
RewriteBase /

Это может пригодиться для предварительного просмотра нескольких веб-сайтов на моем локальном компьютере, а затем для загрузки этих сайтов на веб-серверы для отдельных доменных имен.

1 ответ

Единственное решение, которое мы наконец нашли, выглядит так:

# Activation of the URL Rewriting
Options +FollowSymlinks
RewriteEngine On

# RewriteBase equivalent - Production
RewriteCond %{HTTP_HOST} !^localhost$
RewriteRule . - [E=REWRITEBASE:/production/path/]

# RewriteBase equivalent - Development
RewriteCond %{HTTP_HOST} ^localhost$
RewriteRule . - [E=REWRITEBASE:/development/path/]

# Rewriting
RewriteRule ^(.*)$ %{ENV:REWRITEBASE}index.php?page=$1 [L]

Этот код предлагает способ имитации различий "RewriteBase".

Другие вопросы по тегам