Перенаправление htaccess на основе значения запроса (диапазон значений) - PullRequest
0 голосов
/ 19 марта 2012

Я пытаюсь перенаправить кучу страниц из одного домена в другой (не все страницы, а только их часть).

URL-адрес страницы - domain.com/?p=ID.

ID - это всегда число.

Я бы хотел перенаправить все страницы с идентификаторами до 2000 на новый домен, скажем, domain2.com/?=ID

Как можноЯ делаю это?Вероятно, мне придется использовать шаблоны REGEX, но я не настолько подкован, когда дело доходит до REGEX.

Спасибо,

Рой

1 Ответ

0 голосов
/ 19 марта 2012

Возможно, это можно сделать с помощью регулярного выражения, но оно не очень подходит для таких диапазонов. Другим способом сделать это может быть использование RewriteMap в вашей конфигурации Apache, например:

RewriteMap examplemap txt:/path/to/file/map.txt
RewriteRule ^/?p=(.*) ${examplemap:$1|/?p=$1}

Ваш /path/to/file/map.txt файл будет содержать что-то вроде:

1 http://domain2.com/?p=1
2 http://domain2.com/?p=2
3 http://domain2.com/?p=3
.
.
2000 http://domain2.com/?p=2000

Если запись не найдена в файле карты, то по умолчанию она должна соответствовать существующему домену из-за части после канала в RewriteRule. Это может показаться излишним, но дает вам наилучший уровень контроля над каждым перенаправлением.

Приведенный выше код не был протестирован, но, надеюсь, он объясняет принцип. См. Apache docs для получения дополнительной информации об использовании RewriteMap.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...