Правило перезаписи - если входящий запрос не состоит из определенных символов, то переписать на другой URL - PullRequest
0 голосов
/ 11 мая 2009

Как создать правило, которое проверяет, имеет ли входящий запрос определенные условия, если нет, затем перенаправить на другой URL?

Например, у меня есть веб-сайт my.example.com. Если входящий URL-адрес my.example.com/login, он должен выполнить этот запрос. Если это что-то еще (не login), то запрос должен быть перенаправлен на your.example.com. Например,

  • my.example.com/login2 необходимо перенаправить на your.example.com/login2
  • my.example.com/nologin необходимо перенаправить на your.example.com/nologin
  • my.example.com/getname необходимо перенаправить на your.example.com/getname

И, конечно, если это

  • my.example.com/login необходимо перенаправить на my.example.com/login

Как использовать RewriteRule и mod_rewrite для достижения этой цели?

Ответы [ 3 ]

4 голосов
/ 11 мая 2009

Попробуйте это правило:

RewriteCond %{HTTP_HOST} ^my\.example\.com$
RewriteRule !^login$ http://your.example.com%{REQUEST_URI} [L,R=301]
0 голосов
/ 11 мая 2009

Я знаю, что это не совсем то, что вы просили, но сделал бы это с помощью .htaccess, чтобы направить все запросы (действительные или нет) через один файл, а затем с помощью серверных сценариев (например, PHP в моем case), чтобы переключаться между допустимыми параметрами, перехватывая что-либо еще со значением по умолчанию, которое перенаправляет на другой URL.

например. это:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php

отправляет все, что не является запросом фактического файла или каталога, в index.php

0 голосов
/ 11 мая 2009
RewriteCond %{HTTP_HOST}   !^www\.myexample\.com [NC]
RewriteCond %{HTTP_HOST}   !^$
RewriteRule ^/(.*)         http://www.myexample.com/$1 [L,R]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...