The*_*can 16 mod-rewrite apache2
我在我的网站上的某个地方有一个重写递归错误,谷歌博特造成了,但我找不到导致它的网址,因为我的Loglevel很低.我提出了它,但到目前为止还没有再发生过.
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
Run Code Online (Sandbox Code Playgroud)
所有Rewriterules对我来说都很好,除了这个之外还有[L]标志.
我不太明白.它来自开源商店系统Magento.
据我所知它只会设置环境变量E.但这不是一个非常愚蠢的方式吗?如果这是目标,你不应该使用SetEnv吗?
Eti*_*ais 18
Symfony开发团队有一个很好的答案.我引用:
看起来你的托管正在运行php作为fcgi,而不是php5_module,就像你的localhost一样.(phpinfo - 服务器API:CGI/FastCGI)
重点是php5_module自动处理HTTP_AUTHORIZATION标头,但fcgi_module没有.
解决方案很简单 - 将此行添加到托管服务器上的.htacces:
RewriteRule.* - [E = HTTP_AUTHORIZATION:%{HTTP:授权},L]
它对我有用
此行将环境变量设置为用户身份验证字符串的值 - 实际上是设置变量而不是常量值.据我所知,SetEnv和SetEnvIf只允许您将环境变量设置为预定的常量.
设置的变量实际上是HTTP_AUTHORIZATION,而不是E.我猜这是用户身份验证过程的一部分.
| 归档时间: |
|
| 查看次数: |
25804 次 |
| 最近记录: |