.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 нужно избежать его с \