Проблемы с Apache mod_rewrite - PullRequest
       13

Проблемы с Apache mod_rewrite

2 голосов
/ 05 мая 2011

У меня старый сайт - написано в asp. Форма контакта использует строку запроса, чтобы решить, какую форму увидит посетитель.

Если vistor хочет просто связаться со мной, они могут сделать это, перейдя по ссылке:

http://example.com/contact.asp

Если они хотят сообщить об ошибке - они делают это, нажав на следующую ссылку

http://example.com/contact.asp?problem=true&.......

Дополнительные параметры также передаются после problem nb: ?problem=true&Customer... - однако мне нужно только знать, если problem=true

На новом сайте у меня есть две страницы: contact.html и help.html

Когда посетитель переходит на contact.asp, он перенаправляется на contact.html - благодаря следующему правилу перенаправления:

RewriteRule ^contact\.asp$ http://example.com/contact-us.html [R=301,L]

Тем не менее, я испытываю ОГРОМНЫЕ проблемы, пытаясь получить http://example.com/contact.asp?problem=true для перенаправления на help.html

Я нашел тонны примеров - но ни один из них не работает .. страница всегда перенаправляет на contact.html

Я даже прокомментировал вышеупомянутое правило перезаписи, чтобы увидеть, было ли переопределено мое правило problem=true .... Это вернуло 404. Моя проблема = истинное правило просто не работает.

У меня были следующие примеры, такие как: http://www.simonwhatley.co.uk/apache-htaccess-query-string-redirects

В заключение, я бы хотел перенаправить contact.asp? Problem = true в help.html и contact.asp в contact.html

Заранее большое спасибо,

Rob

1 Ответ

4 голосов
/ 05 мая 2011

Не уверен, что вы пытались соответствовать строке запроса, но должно работать следующее:

RewriteCond %{QUERY_STRING} ^problem=true
RewriteRule ^contact\.asp$ http://primarysite.net/help.html [R=301,L]

RewriteRule ^contact\.asp$ http://primarysite.net/contact-us.html [R=301,L]

Надеюсь, это поможет.

...