Как переписать конкретные URL-адреса с помощью mod_rewrite? - PullRequest
1 голос
/ 04 апреля 2019

У меня есть HTTP-заголовок geoip с именем {HTTP: CF-IPCountry}, в котором хранится код страны, такой как FR, US и т. Д. Что мне нужно сделать, это добавить строку запроса loc = {HTTP: CF-IPCountry} вдомашнюю страницу веб-сайта https://example.com/test-website/ и любую страницу, URL-адрес которой начинается с https://example.com/test-website/products/ или https://example.com/test-website/shop/ и добавьте строку запроса, если в URL-адресе используются какие-либо другие строки запроса, поэтому, еслиСтраница, запрошенная пользователем https://example.com/test-website/products/shoe/?size=s, она должна быть переписана как https://example.com/test-website/products/shoe/?size=s&loc=us

Вот так выглядит файл htaccess

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /test-website/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /test-website/index.php [L]

RewriteCond %{REQUEST_METHOD} !^POST
RewriteCond %{QUERY_STRING} !^loc [NC]
RewriteRule (.*) /%{REQUEST_URI}/?loc=%{HTTP:CF-IPCountry} [NC,NE,R,L,QSA]
</IfModule>

# END WordPress

Проблема, с которой я столкнулся на данный момент, заключается в том, что переписатьПравило работает только на главной странице сайта https://example.com/test-website/ и страницах панели администратора сайта https://example.com/test-website/wp-admin, но не работает с другими страницами внешнего интерфейса, такими как https://example.com/test-website/products/

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

Спасибо

...