С помощью 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".