.htaccess переписать URL с вопросительным знаком "?"
Моя цель заключается в следующем:
component/users/?view=registration
Для того, чтобы:
registration.html
.htaccess
находится в папке mysite сайта.
я попробовал это:
RewriteBase /mysite
RewriteRule ^component/users/?view=registration$ registration.html$ [R=301,L]
Но я не работаю...
Когда я попробую это:
RewriteRule ^component/users/_view=registration$ registration.html$ [R=301,L]
это работает очень хорошо.
Так, как я могу решить эту проблему с вопросительным знаком. Я уже читал, что это не является частью URL (его добавлено). Я прочитал, что мне нужно использовать что-то вроде строки запроса, но я не совсем понял синтаксис.
Может быть, кто-то может написать решение этой проблемы? Было бы здорово =)
Ответы
Ответ 1
Вам нужно использовать %{QUERY_STRING}
для записи данных строки запроса:
RewriteCond %{QUERY_STRING} ^view=(.*)$
RewriteRule ^component/users/?$ %1.html? [R=301,L]
Приведенное выше правило/условие примет значение представления строки запроса и будет использовать его для формирования перенаправления, если соответствует путь component/users
.
Ответ 2
RewriteRule ^component/users/\?view=registration$ registration.html$ [R=301,L]
Вам нужно\из-за? является частью регулярного выражения. Чтобы использовать его как строку, вам нужно сбежать с помощью \
Ссылка: http://ole.michelsen.dk/tools/regex.html