301 Htaccess RewriteRule Query_String - PullRequest
       4

301 Htaccess RewriteRule Query_String

3 голосов
/ 29 сентября 2010

Проблема: Посетители открывают URL website.com /? I = 133r534 | 213213 | 12312312 , но этот URL больше не действителен и им нужен для пересылки на website.com / # Видео: 133r534 | 213213 | 12312312

То, что я пробовал: В течение последних часов я перепробовал множество правил mod_rewrite (.htaccess) с использованием Query_String, все не удалось. Последнее сообщение в этой теме показывает решение этой проблемы, но каково будет правило в моей ситуации.

Мне очень любопытно, как бы вы решили эту проблему:)!

1 Ответ

6 голосов
/ 29 сентября 2010

Следующее будет обрабатывать простой случай, который вы показываете.Вам нужно будет добавить дополнительную логику, если вам нужно разрешить другие параметры в строке запроса или именах файлов перед?.

RewriteEngine On
RewriteCond %{QUERY_STRING} ^i=(.*)
RewriteRule ^.*  /#Video:%1? [NE,R=permanent]

Почему это сложно?

  • RewriteRule не просматривает строку запроса, поэтому вы должны использовать RewriteCond для оценки переменной QUERY_STRING и захвата части, которая вам понадобится позже (на которую ссылается% 1)
  • хеш-символ (#) обычносбежал, вы должны указать флаг [NE]
  • Трейлинг?в строке подстановки требуется подавить исходную строку запроса

Я проверял это на Apache 2.2.

...