.htaccess переписать URL с вопросительным знаком"?"

моя цель-это URL:

component/users/?view=registration

в:

registration.html

на .htaccess в мой_сайт папку сайта.

Я попытался это:

RewriteBase /mysite
RewriteRule ^component/users/?view=registration$ registration.html$ [R=301,L]

но я не работаю...

когда я пробую это:

RewriteRule ^component/users/_view=registration$ registration.html$ [R=301,L]

Она работает очень хорошо.

так как я могу исправить эту проблему с вопросительным знаком. Я уже читал, что это не часть URL (его прилагается). Я прочитал, что мне нужно использовать что-то вроде querystring, но я не понимаю синтаксис.

может быть, кто-то мог бы написать решение этой проблемы? Было бы здорово =)

2 ответов


вам нужно использовать %{QUERY_STRING} для записи данных строки запроса:

RewriteCond %{QUERY_STRING} ^view=(.*)$
RewriteRule ^component/users/?$ %1.html? [R=301,L]

вышеуказанное правило / условие будет принимать значение строки запроса и использовать его для формирования перенаправления, если путь component/users матчи.


RewriteRule ^component/users/\?view=registration$ registration.html$ [R=301,L]

вам нужно \ потому что ? является частью регулярного выражения. Чтобы использовать его в качестве строки u нужно избежать его с \

Linktip:http://ole.michelsen.dk/tools/regex.html