Перенаправление .htaccess, если содержит строку с некоторыми параметрами - PullRequest
0 голосов
/ 11 мая 2018

Я пытаюсь перенаправить маршрут на поддомен, если он содержит определенную строку:

Например, если домен содержит /foo/bar/:

http://example.com/foo/bar/123/456.jpg следует перенаправить на поддомен http://sub.example.com/bar/123/456.jpg.

Я имею в виду, мне нужно будет удалить только /foo/ из маршрута и перенаправить результат на поддомен.

Я не знаю, как удалить определенную строку в середине маршрута, сохраняя следующие строки.

1 Ответ

0 голосов
/ 11 мая 2018

Попробуйте что-то вроде следующего в верхней части файла .htaccess в корне example.com:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteRule ^foo/(bar/\d+/\d+\.jpg)$ http://sub.example.com/$1 [R,L]

Если поддомен указывает на совершенно другую область файловой системы, вы можете удалитьдиректива RewriteCond, которая проверяет имя хоста.Или, если префикс /foo/ всегда должен быть удален (независимо от того, какой хост запрашивается).

Это соответствует запросам вида /foo/bar/<number>/<number>.jpg.

$1 - это обратная ссылка назахваченная группа в шаблоне RewriteRule , в которой специально пропущен префикс foo/.

Это временное (302) перенаправление.

, если домен содержит/foo/bar/

Это часть URL-пути, а не домен .

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