Apache переписать все URL, кроме тех, которые начинаются с определенных путей - PullRequest
3 голосов
/ 03 января 2012

Я пытаюсь перенаправить все запросы, кроме тех, которые начинаются с определенных путей.

например,

http://www.example.com/mypath1 не должен перенаправлять

http://www.example.com/mypath2 не должен перенаправлять

Все остальное следует перенаправить

До сих пор я пытался заставить его работать, используя только один из путей исключения:

RewriteRule ^(?!/mypath1/).*$ http://www.google.com/? [R=301,L]

и вот так:

RewriteCond %{REQUEST_URI} !^/mypath1/.* [NC]
RewriteRule ^.*$ http://www.google.com/? [R=301,L]`

и вот так:

RewriteCond %{REQUEST_FILE} !^/mypath1/.* [NC]
RewriteRule ^.*$ http://www.google.com/? [R=301,L]

Однако все, что я пытаюсь сделать, это просто перенаправить все запросы. Кто-нибудь знает, как это сделать?

1 Ответ

1 голос
/ 04 января 2012

Мне удалось решить проблему, запрос, который я делал, позже перенаправлялся в конфигурации apache на страницу ошибки, которая затем перехватывалась перенаправлением catch all.

Если кто-то ещеИмея похожие проблемы, я рекомендую использовать apache RewriteLog, поскольку это помогло точно определить проблему.Для этого просто добавьте это в свой VHOST:

RewriteEngine on
RewriteLog "C:/devenv/Apache2/logs/rewrite.log"  
RewriteLogLevel 2
...