Я задал этот вопрос в Stackoverflow, но один из респондентов посоветовал мне задать его здесь. Интересно, можно ли это сделать в htaccess?
У меня есть этот URL:
https://www.example.com/folder/New.jsp?par=new1
... который я хочу перенаправить на:
https://www.example.com/folder/New.jsp
как мне это сделать?
В основном у меня есть par=new1|new2|new3|new4
который хотел бы быть перенаправлен на https://www.example.com/folder/New.jsp
.
Мы будем очень благодарны за любую вашу помощь.
Чтобы соответствовать определенным параметрам URL, вам необходимо использовать mod_rewrite с состояние что сверяется с QUERY_STRING
серверная переменная. Mod_alias Redirect
и RedirectMatch
Директивы соответствуют только URL-пути и не могут использоваться для проверки строки запроса.
Попробуйте следующее в верхней части .htaccess
файл в корне документа:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^par=(new1|new2|new3|new4) [NC]
RewriteRule ^folder/New\.jsp$ /$0 [NC,QSD,R,L]
В QSD
флаг (требуется Apache 2.4) на RewriteRule
директива отбрасывает исходная строка запроса из перенаправленного URL-адреса. Если вы все еще используете Apache 2.2, используйте ?
в конце замена строка вместо этого. Например: RewriteRule ^folder/New\.jsp$ /$0? [NC,R,L]
.
$0
- это обратная ссылка на весь URL-путь, который соответствует RewriteRule
шаблон. т.е. folder/New.jsp
.
Обратите внимание, что это 302 (временное) перенаправление. Если требуется 301 (постоянное) перенаправление, измените R
флаг для чтения R=301
.
Если вам просто нужно снять параметры, это довольно просто
RedirectMatch https://www.website.com/folder/New.jsp(\?par=.[a-z]) https://www.website.com/folder/New.jsp
Mod_rewrite не требуется.