fragen stichworte

Verwenden Sie die SetEnv-Variable in der htaccess-Rewrite-Regel

In unserem virtuellen Hostblock httpd.conf haben wir

SetEnv MAGE_RUN_CODE "v2_us_es"

Kann diese Variable in einer .htaccess-Datei

verwendet werden

So etwas wie

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

Ist das möglich?

Vielen Dank!

Jeff

Bearbeiten: Ich habe die folgenden Links angesehen, aber keiner von ihnen macht das, was ich versuche,

https://stackoverflow.com/questions/10727720/conditional-setenv-in-htaccess https://stackoverflow.com/questions/2008123/how-to-use-getenv-in-php-und-setenv-in-a-htaccess-mit-a-compiled-php-cgi-on https://stackoverflow.com/questions/3638637/how-to-use-the-setenv-variable-in-apache

antworten

Die Syntax für die Verwendung von Umgebungsvariablen in mod_rewrite lautet %{ENV:VARNAME}:

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

SetEnv-Variablen geben nur leere Zeichenfolgen in einer RewriteRule zurück. Ich denke, das ist, weil sie nicht festgelegt wurden, wenn die RewriteRule ausgeführt wird. Aber SetEnvIf wird funktionieren, also können Sie versuchen:

SetEnvIf Request_URI ^.*$ MAGE_RUN_CODE=v2_us_es

und verwenden Sie es dann mit:

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

Das Request_URI ^.*$ -Bit in SetEnvIf prüft nur, ob die angeforderte Seite etwas oder nichts ist, setzt also immer die Variable.

Es wäre wahrscheinlich besser als 'RewriteMap' in der Apache-Konfigurationsdatei konfiguriert.