如何查看RewriteRule或RewriteCond服务器变量的值?

时间:2012-12-18 06:02:27

标签: .htaccess mod-rewrite

例如,如果我想看看php中的某个变量中有什么值,我就这样做:

$foo = 'This is a variable foo';

var_dump($foo);  // string(22) "This is a variable foo"
echo $foo;       // This is a variable foo
print_r $foo;    // This is a variable foo

但是当我编写一些mod_rewrite规则时,我现在只能猜出RewriteRule的值是什么,以及重写($0)后它会变成什么:

<Directory /public>
    DirectoryIndex index.php
</Directory>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]   // what is %{REQUEST_FILENAME}
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+)$ $0 [NC, L]             // what is ^(.+)$, and what is $0?

有没有办法打印或以某种方式看到每行后我得到的价值?例如,我想看看RewriteRule ^(.+)$ $0 [NC, L]中的内容,^(.+)$中的内容以及$0中的内容。

1 个答案:

答案 0 :(得分:1)

不,你问的方式不对。

错误日志是一个很好的帮助。将LogLevel设置为debug,如下所示:LogLevel debug文件中的httpd.conf

如果使用Firefox,您可以尝试使用livehttpheaders来查看标题和其他相关信息。其他浏览器也有相同的扩展名。

毋庸置疑,带有echo var_dump($_SERVER);或类似语句的映射地址的php脚本将显示结果的完整信息。