Я хочу перенаправить в файл .conf сайта apache:
<Directory /var/www/site/>
RewriteEngine On
RedirectMatch /people/ /work/staff/
</Directory>
Я хочу перенаправить это:
http://test.com/people/
на
http://test.com/work/staff/
Iя не хочу перенаправлять эти ситуации, но это происходит сейчас:
http://test.com/people/subdir/
http://test.com/people/file.php
http://test.com/people/file-2.jpg
http://test.com/people/subdir-2/subdir-3/index.html
http://test.com/people/123/
http://test.com/test2/people/123/
http://test.com/test2/people/
Я использовал https://regexr.com/ и построил регулярное выражение, чтобы избежать такого поведения:
/\/people\/\W/
НоЯ не могу поместить его в RedirectMatch, как
RedirectMatch /people/\W
, это не работает.Я ничего не нашел в Google.
Я проверил руководство https://httpd.apache.org/docs/2.4/rewrite/remapping.html, но, похоже, нет решения моей проблемы, но я могу ошибаться.
Может кто-нибудь помочь, пожалуйста?Может быть, это простое решение.
Решено мной
Хорошо, я понял это.Веб-сайт документации Apache - худший!Я не нашел объяснения для знаков ^ и $.Благодаря https://webmasters.stackexchange.com/a/88887
я изменяю правило на:
<Directory /var/www/site/>
RewriteEngine On
RedirectMatch /people/$ /work/staff/
</Directory>
$ , в конце концов, это означает, что впоследствии ничего не будет. ^ в начале означает, что он не начинается везде в URL.