Apache: Как перенаправить первый конкретный каталог, в котором нет подкаталогов или имен файлов? - PullRequest
0 голосов
/ 08 февраля 2019

Я хочу перенаправить в файл .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.

...