为什么我的 mod_proxy 标志在 htaccess 中停止工作?
Why did my mod_proxy flag stop working in htaccess?
我创建了一个 RewriteMap 来处理大量域代理。我的重写条件如下所示:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ - [E=MAPTO:${rewritemap:%1}]
RewriteCond %{ENV:MAPTO} !=""
RewriteRule ^.*$ http://exampledomain.com/%{ENV:MAPTO}/[=11=]/ [P,NC]
</IfModule>
基本上,我的 RewriteMap 会查看传入的域,将其与数据库中的条目匹配,然后 return 类似于 "user/userid".
例如,这将在地址栏中显示传入域,但显示 returned at http://exampledomain.com/user/userid/
的内容
现在,出于某种原因,我收到了 301 重定向到 http://exampledomain.com/user/userid/ — 没有代理。可能是什么原因造成的?
好吧,这是因为我打开了输出缓冲。来自 Apache 文档:
关闭它,现在可以使用了。
更新
这显然没有解决问题。不知道为什么它似乎有效而现在却无效。如果其他人有任何建议,我会采纳。
更新 2
好的,这次我删除了尾部的斜线,它似乎起作用了:
RewriteRule ^.*$ http://exampledomain.com/%{ENV:MAPTO}/[=10=] [P,NC]
我猜如果传入的域没有目录或文件名,它会以双斜线结尾,这会导致页面重定向。
我创建了一个 RewriteMap 来处理大量域代理。我的重写条件如下所示:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ - [E=MAPTO:${rewritemap:%1}]
RewriteCond %{ENV:MAPTO} !=""
RewriteRule ^.*$ http://exampledomain.com/%{ENV:MAPTO}/[=11=]/ [P,NC]
</IfModule>
基本上,我的 RewriteMap 会查看传入的域,将其与数据库中的条目匹配,然后 return 类似于 "user/userid".
例如,这将在地址栏中显示传入域,但显示 returned at http://exampledomain.com/user/userid/
的内容现在,出于某种原因,我收到了 301 重定向到 http://exampledomain.com/user/userid/ — 没有代理。可能是什么原因造成的?
好吧,这是因为我打开了输出缓冲。来自 Apache 文档:
关闭它,现在可以使用了。
更新
这显然没有解决问题。不知道为什么它似乎有效而现在却无效。如果其他人有任何建议,我会采纳。
更新 2
好的,这次我删除了尾部的斜线,它似乎起作用了:
RewriteRule ^.*$ http://exampledomain.com/%{ENV:MAPTO}/[=10=] [P,NC]
我猜如果传入的域没有目录或文件名,它会以双斜线结尾,这会导致页面重定向。