在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]