Назад | Перейти на главную страницу

Используйте переменную SetEnv в правиле перезаписи htaccess

В нашем httpd.conf блок виртуального хоста у нас есть

SetEnv MAGE_RUN_CODE "v2_us_es"

Можно ли использовать эту переменную в .htaccess файл

Что-то вроде

RewriteRule ^sitemap\.xml$ /media/sitemaps/%{MAGE_RUN_CODE}/sitemap.xml [L]

Это возможно?

Я просмотрел следующие ссылки, но ни одна из них не делает то, что я пытаюсь сделать

Синтаксис для использования переменных среды в mod_rewrite: %{ENV:VARNAME}:

RewriteRule ^sitemap\.xml$ media/sitemaps/%{ENV:MAGE_RUN_CODE}/sitemap.xml [L]

SetEnv переменные просто возвращают пустые строки в RewriteRule. Я думаю, это потому, что они не были установлены, когда RewriteRule выполняется. Но SetEnvIf будет работать, так что вы можете попробовать:

SetEnvIf Request_URI ^.*$ MAGE_RUN_CODE=v2_us_es

а затем используйте его с:

RewriteRule ^sitemap\.xml$ /media/sitemaps/%{ENV:MAGE_RUN_CODE}/sitemap.xml [L]

В Request_URI ^.*$ немного в SetEnvIf просто проверяет, является ли запрошенная страница чем-то или ничего, поэтому всегда устанавливает переменную.

Наверное, лучше было бы сконфигурировать как RewriteMap в файле конфигурации Apache.