У меня есть форум на моем сайте, и мне нужно перенаправить странно сгенерированные URL-адреса.
Каждый URL-адрес содержит ?id=, например:
https://www.example.com/forum/topic/casualthread/page/25?id=casualthread
и мне нужно удалите ?id= и все, что следует, чтобы иметь:
https://www.example.com/forum/topic/casualthread/page/25
Я пытаюсь изменить этот код, который я нашел здесь, в Stackoverflow, с очень скудными результатами:
RewriteEngine On
RewriteBase /
# Make sure there is a query string
RewriteCond %{QUERY_STRING} .
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* /?id= [R=301,L]
Файл htaccess, который я редактирую, находится в каталоге форума: https://www.example.com/forum/
и перенаправляет все на домашнюю страницу https://www.example.com: что я делаю не так?





Вы можете использовать это
RewriteEngine on
RewriteCond %{QUERY_STRING} id=
RewriteRule ^ %{REQUEST_URI}? [L,R]
Поскольку в строке запроса может присутствовать не только id, но и некоторые другие параметры, используйте:
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} ^(.*)(^id=[^&]*&?|&id=[^&]*)(.*)$
RewriteRule ^(.+) /$1?%1%3 [R=301,L]
Нет, Google нашел только те, о которых я упоминал. Ответ Старкина сработал.