301 Перенаправление из /% anyfolder% / в / Specifi c папка / - Apache - PullRequest
1 голос
/ 09 января 2020

У меня есть сайт, на котором есть несколько старых путей к доменам. Например.

https://example.com/path1/file.html

https://example.com/path2/file.html

https://example.com/path3/file.html

https://example.com/path4/file.html

И я хочу перенаправить все трафики c с любого пути на указанный путь

https://example.com/my-new-path/file.html

Я попробовал следующее в моем файле htaccess

RedirectMatch 301 ^.*/file.*$ /my-new-path/

Однако, это создает перенаправление l oop, и я понимаю, почему. Вопрос в том, что я не знаю, как обойти это.

Как я могу создать переадресацию перехвата всех. * Что угодно, кроме my-new-path?

1 Ответ

1 голос
/ 09 января 2020

Вы можете использовать отрицательное регулярное выражение вида вот так:

RedirectMatch 301 ^/(?!my-new-path/)[\w-]+/(file\..+)$ /my-new-path/$1

(?!my-new-path/) - это отрицательное утверждение предпросмотра, которое соответствует следующему шаблону с использованием [\w-]+ за исключением my-new-path.

Make обязательно используйте новый браузер или очистите кеш браузера для проверки этого правила.

...