我有一个.htaccess通过请求的规则/类别/类别-slug/ to 类别.php。然而,当我检查$_SERVER
超级全局,我得到这个条目:
Array
(
[PATH_TRANSLATED] => redirect://
)
那是什么?我从未见过重定向:// before.
这是相关的.htaccess rule:
RewriteRule ^category/([^/]+)/?(.*) /category.php?cat=$1&page=$2 [L,QSA]
结果,我没有得到$_GET['cat']
or $_GET['page']
填充在我的脚本中,因为它似乎来自重定向并且没有简单地重写请求。这是怎么回事?
我找到了一个Apache 错误报告 (40781)关于似乎是同一个问题。引用鲍勃·伊内斯库评论:
“问题在于,主请求的 uri=path_info 的子请求(为了获得 path_translated,即 path_info 的物理路径视图)再次命中每个目录上下文中的 RewriteRule 并匹配;因此没有物理路径。
为什么在 Apache 2.0 中不会出现这种情况?答案很简单:mod_rewrite 不会在 2.1 版本之前的每个目录上下文中的子请求中起作用。 NS 标志阻止在子请求中处理 RewriteRules。”
该评论建议您应该能够通过包含以下内容来解决此问题[NS] flag在你的RewriteRule
s,除非你明确地want它们也适用于子请求。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)