Я пытаюсь добавить правило перезаписи для URL в .htaccess в IMPERSSPAGES CMS.
У меня есть example.com/obj?id=123, и я хочу, чтобы он выглядел как example.com/obj/123
Возможно ли это даже потому, что в htaccess уже есть правило rewire, указывающее на index.php:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?%{QUERY_STRING} [L]
Вы должны добавить флаг Redirect в конце и косую черту в начале, чтобы это работало. В противном случае будет по-прежнему вызываться последнее правило, и IP-маршрутизация выдаст ошибку 404.
До
RewriteRule ^obj/(\d+)/?$ your-script.php?id=$1 [L]
После:
RewriteRule ^obj/(\d+)/?$ /your-script.php?id=$1 [R,L]
Ты можешь использовать:
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]
RewriteRule ^obj/([0-9]+)/?$ obj?id=$1 [L]
RewriteRule ^(.*)$ index.php?%{QUERY_STRING} [L]