Apache: кроме пути из RewriteRule - PullRequest
0 голосов
/ 07 июля 2011

Я пытаюсь, кроме как быть перенаправленным на /portal/, если вы получаете доступ к /sitemapHT/, но кажется, что этот процесс ^(/$|!sitemapHT) неправильный, поскольку он все еще перенаправляет меня на / portal /

<VirtualHost *:80>
        DocumentRoot "/opt/tomcat-5.5.30/webapps/portal"
        ServerName hoteles
        ServerAlias hoteles

        JkUnMount       /images/*.gif           w1
        JkUnMount       /images/*.png           w1
        JkUnMount       /images/*.jpg           w1
        JkUnMount       /js/*.js                w1
        JkUnMount       /styles/*.css           w1


        JkMount         /portal                 w1
        JkMount         /portal/*               w1


        RewriteEngine on
        RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
        RewriteRule .* - [F]
        Options +FollowSymlinks

        RewriteRule   ^(/$|!sitemapHT)  /portal/  [R]
        RewriteRule ^/(?!portal)(.*) /portal/ficha.action/$1 [PT]

</VirtualHost>

Не могли бы вы предложить мне правильное исправление?

Спасибо!

1 Ответ

1 голос
/ 07 июля 2011

Надеюсь, я вас правильно понял:

RewriteCond $1 !^/(sitemapHT/|portal/)
RewriteRule ^(.*) /portal/ [R,L]

Это перенаправит (302 код) ВСЕ входящие запросы на /portal/, КРОМЕ /sitemapHT/ или при запросе /portal/ напрямую.


UPDATE:

RewriteCond $1 !^/(sitemapHT/|portal/)
RewriteRule ^(.*) /portal/ [R,L]
RewriteCond $1 !^(sitemapHT/|portal/)
RewriteRule ^/(.*) /portal/ficha.action/$1 [PT]

Используйте приведенные выше правила вместо двух последних строк:

RewriteRule ^(/$|!sitemapHT) /portal/ [R]
RewriteRule ^/(?!portal)(.*) /portal/ficha.action/$1 [PT]
...