Перенаправление в htaccess

#apache #.htaccess

#apache #.htaccess

Вопрос:

Как я мог бы изменить

 RedirectMatch ^/?folder/(.*) https://elsewhere.com/abc.php?var=1amp;d=$1
  

добавить исключение, чтобы, если адресом была папка / принтер, он не перенаправлял, но все остальное перенаправляло?

Ответ №1:

 RewriteEngine On
RewriteRule !^/?folder/printer/
  

приведенный выше (!) ваш RedirectMatch должен сделать свое дело.

Кроме того, взгляните на этот пост

Комментарии:

1. В моей конфигурации Apache в настоящее время возникла некоторая проблема с RewriteRule, который отлаживается на моем хостинге. В то же время я не могу использовать RewriteRule, но я могу использовать перенаправление и RedirectMatch. Есть ли способ реализовать это с помощью RedirectMatch — предпочтительно в этом однострочном операторе?

2. @lioman Хорошо, я понял… На самом деле я довольно плох в регулярных выражениях, но это должно быть что-то вроде этого: RedirectMatch ^/?folder/((?!printer$).*) https://elsewhere.com/abc.php?var=1amp;d=$1 — Попробуйте несколько вариантов (например, добавив косую черту после принтера или удалив $ там), и я надеюсь, что это поможет.