我正在寻找一种方法来在IP或主机名的基础上启用一些.htaccess规则(希望使用正则表达式)。这遍及stackoverflow,但我找不到任何适用于规则块的通用规则(事实上,这可能不是.htaccess如何工作。我&#39 ;我不确定!)。
我不需要重写规则。我不需要访问/拒绝标志。我只是想在一些服务器上更改一些开发IP地址的PHP标志和文件行为。
例如,启用调试模式/ error_log /
<magical_ip_filter_tag "123.456.78.901">
php_flag display_startup_errors on
php_flag display_errors on
php_flag html_errors on
php_flag log_errors on
php_value error_log /home/path/public_html/domain/PHP_errors.log
</magical_ip_filter_tag>
请注意,我不需要用于PHP调试的PHP解决方案,这只是一个示例。
答案 0 :(得分:1)
您通常会发现很多评论/帖子说这是不可能的。在较新的Apache版本(2.4及更新版本)中,这很容易实现。
但是在较旧的Apache上2.2*
这是我用作解决方案
创建/index.php
的符号链接,并使用此命令将其命名为/myinde.php
:
ln -s index.php myindex.php
在DocumentRoot/.htaccess
:
RewriteCond %{REMOTE_ADDR} ^123\.456\.78\.901$
RewriteRule !^myindex.php/ myindex.php%{REQUEST_URI} [L]
<Files myindex.php>
php_flag display_startup_errors on
php_flag display_errors on
php_flag html_errors on
php_flag log_errors on
php_value error_log /home/path/public_html/domain/PHP_errors.log
</Files>
RewriteRule
将您IP地址的所有请求转发至/myindex.php
,使原始URI可用PATH_INFO
。
然后对文件<Files myindex.php>
执行myindex.php
内的代码块。