Apache重写条件变为无限循环

Apache重写条件变为无限循环,apache,.htaccess,tomcat,mod-rewrite,Apache,.htaccess,Tomcat,Mod Rewrite,我有一个tomcat,它有两个名为“app1”和“app2”的应用程序。 我使用以下v.host配置为tomcat的ApacheWeb服务器做了前端处理 ServerName mywebapp.com ServerAlias mywebapp.com ProxyRequests On ProxyVia On <Proxy *> AddDefaultCharset Off Order deny,allow Allow from all </Proxy> Rewrite

我有一个tomcat,它有两个名为“app1”和“app2”的应用程序。 我使用以下v.host配置为tomcat的ApacheWeb服务器做了前端处理

ServerName mywebapp.com
ServerAlias mywebapp.com

ProxyRequests On
ProxyVia On

<Proxy *>
AddDefaultCharset Off
Order deny,allow
Allow from all
</Proxy>

RewriteEngine On
Options +FollowSymLinks

RewriteEngine on
RewriteCond %{HTTP_HOST} ^mywebapp.com$
RewriteRule ^(.*)$ http://mywebapp.com/app1$1 [R=301,L]

ProxyPass / ajp://localhost:8009/
ProxyPassReverse / ajp://localhost:8009/


有人能建议我需要做的更改吗?

您可以使用以下规则:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^mywebapp.com$
RewriteRule ^/?((?!app1).*)$ http://mywebapp.com/app1/$1 [NC,L,R]

试试这个:

RewriteEngine on 
RewriteCond %{HTTP_HOST}%{REQUEST_URI} = mywebapp.com
RewriteRule .* /app1 [R=302]
重定向301是永久的。除非你希望它是永久性的,否则不要使用它。
redirect 302是临时的,它是默认的。

为什么要将域重定向到自身?因为默认情况下,我需要我的“app1”作为mywebapp.com上的默认web应用。这就是为什么我将mywebapp.com重定向到mywebapp.com/app1。您正在使用%{REQUEST\u URI}变量与Http_主机进行匹配。@startkeen:添加这些行之后。我登陆到Apache默认页面。
RewriteEngine on 
RewriteCond %{HTTP_HOST}%{REQUEST_URI} = mywebapp.com
RewriteRule .* /app1 [R=302]