为啥 ?XDEBUG_PROFILE=true 被 mod_rewrite 忽略?

Posted

技术标签:

【中文标题】为啥 ?XDEBUG_PROFILE=true 被 mod_rewrite 忽略?【英文标题】:Why is ?XDEBUG_PROFILE=true being ignored by mod_rewrite?为什么 ?XDEBUG_PROFILE=true 被 mod_rewrite 忽略? 【发布时间】:2011-08-17 14:08:01 【问题描述】:

我已将 xdebug 安装到我的 php 中,并希望在 url 字符串中使用 ?XDEBUG_PROFILE=true 来执行分析器。但是,当我尝试使用具有带有查询字符串的 mod_rewrite RewriteRule 的 url 执行此操作时,它不会配置文件。示例:

RewriteRule ^page/(.*)/last$       page.php?pageid=$1 [L]

实现此功能的最佳方法是什么?

【问题讨论】:

【参考方案1】:

您需要添加[QSA] 标志以将任何查询字符串附加到重写。

RewriteRule ^page/(.*)/last$       page.php?pageid=$1 [L,QSA]

只允许XDEBUG_PROFILE:

RewriteCond %QUERY_STRING ^XDEBUG_PROFILE
RewriteRule ^page/(.*)/last$       page.php?pageid=$1&XDEBUG_PROFILE=1 [L]

# Other requests go through as normal
RewriteRule ^page/(.*)/last$       page.php?pageid=$1 [L]

【讨论】:

谢谢,但我不太喜欢它的声音。这是否意味着任何人都可以将任何查询字符串传递给我的脚本?从而向黑客开放了 GET 变量。 @David 然后试试我刚刚添加的内容。不允许任何查询参数,但 XDEBUG_PROFILE 是。在任何情况下,您都可以在完成分析后删除 QSA,因为无论如何您都应该在生产中禁用 xdebug。 @david:没有什么能阻止某人在他们的地址栏中输入example.com/yourscript?hahah=im_in_url_url&adding=stuffz

以上是关于为啥 ?XDEBUG_PROFILE=true 被 mod_rewrite 忽略?的主要内容,如果未能解决你的问题,请参考以下文章

为啥下面的表达式返回 true?

php switch 为啥 bool TRUE 被判断为了 int 1,NULL 成了 string '',而 bool FALSE 正常?

为啥 destroyOnClose=true 在 React 中不起作用

这段代码里的Object类型为啥能被强制转换为Comparable接口类型呢?

java 字节流 多个文件写入一个文件 为啥前面写入的内容会被覆盖了

为啥从数据库取出来的值为1,0,用java取出来变成true,false