После a2enmod rewrite
, Я написал файл /etc/apache2/conf-available/myspecific_rewrite.conf
:
RewriteEngine on
RewriteRule ^/test(/.*)?$ http://anothersite.tld/test$1 [R]
RewriteRule ^/test2(/.*)?$ http://anothersite2.tld/test [R]
Затем я a2enconf myspecific_rewrite
и правильная символическая ссылка создается в /etc/apache2/conf-enabled
.
Проблема в том, что эта конфигурация не работает: перезапись не активна.
Я хочу, чтобы эта перезапись была активна для всех моих виртуальных хостов. Этот файл, который я написал, определяет RewriteRule
s за пределами <VirtualHost>
... есть ли способ заставить его работать?
вы могли бы использовать include
в каждой директиве VirtualHost, указывающей на файл.
Источник информации: SO комментарий Джереми Бурка
альтернатива, которую вы можете использовать
RewriteEngine On
RewriteOptions Inherit
на каждом VirtualHost
Источник: тот же вопрос и Документы Apache для mod_rewrite
Вот что я наконец сделал: использовал mod_aliasс Redirect
и RedirectMatch
директивы.
Вот мой файл conf:
Redirect permanent /test http://anothersite.tld/test
RedirectMatch permanent ^/test2(/.*)?$ http://anothersite2.tld/test
Преимущество: мне больше не нужен mod_rewrite.