Я использую в своей cms с предварительно определенным htaccess, как показано ниже:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?%{QUERY_STRING} [L]
Я хочу обновить URL-адрес, чтобы удалить 2 «подкаталога»:
из /en/top/solutions/?id=1
к /solutions/?id=1
из /en/top/about/?othervar=1
к /about/?othervar=1
это одна из вещей, которые я делал до сих пор:
RewriteRule ^en/top/ /$1 [L,R=301]
Я не мог заставить его работать. Спасибо
В $1
означает «использовать первую часть исходного URL-адреса для захвата». Чтобы захватить часть исходного URL-адреса, вам нужно использовать круглые скобки, чтобы захватить его. Примерно так:
RewriteRule ^/en/top/(.*) /$1 [QSA]
Это означает "бери все, что начинается с /en/top/
, затем запишите то, что следует, и поместите это в переменную $ 1. Перепишите только в переменную $ 1 и добавьте исходную строку запроса.