我需要重定向到从端口 80 到 8080 的文件夹 1. 默认索引到 /somename 2. /admin 到 /somename
我尝试使用 .htaccess
RewriteEngine on
Redirect / http://example.com:8080/somename
Redirect /admin http://example.com:8080/someAdmin
但是我正在运行 JSP,所以我使用的文件夹名称是 someAdmin(注意是大写 A),我无法在代码中更改路径(对此感到抱歉)
问题 因此,我收到错误页面(CASE sEnSiTive)重定向(在浏览器中自动转换为小写)
添加在 如果 .htaccess 可以通过反向代理屏蔽用户的 8080 端口,我会很高兴。
RewriteEngine on
RewriteCond %{SERVER_PORT} !^8080$
RewriteRule ^(.*) http://%{SERVER_NAME}:8080/somefolder%{REQUEST_URI}
Redirect /admin http://%{SERVER_NAME}:8080/someAdmin
答案1
出现这样的行为很奇怪Redirect
。我现在手边没有 Apache 实例来验证 mod_alias 的行为是否应该如此,但如果它在目标位置不区分大小写,那么我想只需使用 mod_rewrite,因为无论如何你都会加载它:
RewriteBase /
RewriteRule ^$ http://example.com:8080/somename [R,L]
RewriteRule ^admin$ http://example.com:8080/someAdmin [R,L]
对于反向代理,看起来您想要代理而不是除了重定向之外?
对于您需要的,ProxyPass
它可以正常工作,但它与 .htaccess 配合得不好。如果您有选择,请不要在 .htaccess 中配置它,ProxyPass
而是使用。如果没有,那么 mod_rewrite 应该可以解决问题:
RewriteBase /
RewriteRule ^admin(.*)$ http://example.com:8080/someAdmin$1 [R,L]
RewriteRule ^(.*)$ http://example.com:8080/somename/$1 [R,L]