2010-09-28 3 views
3

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

Что я пробовал: за последние несколько часов я попробовал много mod_rewrite (.htaccess) правила с помощью QUERY_STRING, потерпели неудачу. Последнее сообщение в this topic показывает решение этой проблемы, но каково было бы правило в моей ситуации.

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

ответ

6

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

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

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

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

Я тестировал это на Apache 2.2.

+1

Отличный Том! Большое спасибо, это работает для меня, и теперь я понимаю концепцию :) – MeProtozoan

Смежные вопросы