ProxyPass如果RewriteCond为TRUE

proxypassconfiguration文件我已经写了这一行

ProxyPass /directory/ ajp://localhost:8009/directory/ 

它完美的作品

在htaccess文件

 RewriteRule ^seconddirectory/(.*)$ http://domain.com.localhost/directory/$1 [P] 

P旗意味着L.

这也可以

如果我只使用[L],它也可以。 无论如何,将与ProxyPass相匹配。

但我希望代理通过AJPredirect只有当引用包含/ action如果不是,则不能使用ProxyPass

我试图用RewriteCond做一个条件

 RewriteCond %{HTTP_REFERER}% !/action RewriteRule .? - [S=2] RewriteRule ^seconddirectory/(.*)$ https://domain.com.localhost/directory/$1 [L] RewriteRule .? - [S=1] RewriteRule ^seconddirectory/(.*)$ https://domain.com.localhost/404 [L] 

如果(引用者不包含/动作),在这种情况下,跳过2行,并被redirect到404页面

如果URL是

HTTPS://domain.com.localhost/seconddirectory/anything

我被redirect到https://domain.com.localhost/404

这是对的

如果引用包含/操作

我不会被redirect到https://domain.com.localhost/directory/ $ 1

这是来自https://domain.com.localhost/controller.php/module/atoken/action (referer)的引用者。

任何build议?

你要找的是RewriteRule[P]标志。 像这样的东西:

 RewriteCond %{HTTP_HOST} ^alias.domain.com$ [I] RewriteRule ^/(.*)$ http://myinternalserver.com/$1 [P,L]