Mod rewrite Apache:除了来自重写规则的路径

Mod rewrite Apache:除了来自重写规则的路径,mod-rewrite,apache2,apache,Mod Rewrite,Apache2,Apache,如果您访问/sitemapHT/,我试图避免被重定向到/portal/,但这个过程似乎是错误的,因为它仍然将我重定向到/portal/ <VirtualHost *:80> DocumentRoot "/opt/tomcat-5.5.30/webapps/portal" ServerName hoteles ServerAlias hoteles JkUnMount /images/*.gif

如果您访问
/sitemapHT/
,我试图避免被重定向到
/portal/
,但这个过程似乎是错误的,因为它仍然将我重定向到/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>

DocumentRoot“/opt/tomcat-5.5.30/webapps/portal”
服务器名酒店
ServeAlias酒店
jkumount/images/*.gif w1
jkumount/images/*.png w1
jkunlunt/images/*.jpg w1
jkumount/js/*.js w1
jkunlount/styles/*.css w1
JkMount/入口w1
JkMount/portal/*w1
重新启动发动机
重写cond%{REQUEST_METHOD}^(跟踪|跟踪)
重写规则。*-[F]
选项+FollowSymlinks
重写规则^(/$|!sitemapHT)/portal/[R]
重写规则^/(?!门户)(.*)/portal/ficha.action/$1[PT]
你能给我一个正确的建议吗


谢谢大家!

我希望我理解正确:

RewriteCond $1 !^/(sitemapHT/|portal/)
RewriteRule ^(.*) /portal/ [R,L]
这将重定向(302代码)所有传入请求到
/portal/
,除非
/sitemapHT/
或直接请求
/portal/


更新:

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]

如果我们已经有了“RewriteCond%{REQUEST_METHOD}^(TRACE | TRACK)”怎么办?这会影响它吗?我们当前的重写将所有内容重定向到/portal/,这是正确的,但我需要从这个重定向中删除/sitemapHT/,这将是您编写的规则的用法。这个规则是为了阻止不需要的请求方法,而不管实际的URL()。重定向使用GET或POST方法。对于一般用途的网站来说,帖子和帖子就足够了。但是是的——如果有人试图使用跟踪或跟踪方法访问您的站点,他将看到错误屏幕而不是重定向。我认为这是一个正确的行为。是的,我的规则重定向了除
/sitemapHT/
/portal/
(因为没有必要将
/portal/
重写到完全相同的URL创建重写循环,对吗?)