Как перенаправить только при точном совпадении ссылок?
Я пытаюсь перенаправить с apache.htaccess. У меня есть следующие коды
redirectMatch 301 /user http://clients.mydomain.com
он работает очень хорошо, но я не хочу, чтобы "/user/login" был направлен на "http://clients.mydomain.com/login" .
Как это предотвратить?
Ответы
Ответ 1
Просто добавьте ^
в начало и $
в конец
^
указывает, что регулярное выражение соответствует началу URL
$
говорит, что регулярное выражение соответствует концу URL-адреса
redirectMatch 301 ^/user$ http://clients.mydomain.com
Итак, теперь ваше правило будет соответствовать только /user
, а не /some/user
или /user/name
или /some/user/name
ПРИМЕЧАНИЕ. Если вы хотите совместить /user/
и /user
, используйте ^/user/?$
?
говорит, чтобы соответствовать предыдущему символу/группе ноль до одного раза
Ответ 2
Используйте регулярное выражение, вы уже используете переадресацию.
http://httpd.apache.org/docs/2.0/mod/mod_alias.html#redirectmatch
'$' соответствует концу URL-адреса. В вашем примере:
redirectMatch 301 ^/user/(.+)$ http://clients.example.com/