我允许使用以下内容在.htaccess文件中使用php短标记:
php_flag short_open_tag on
我想让这个有条件,即,当param st0
在网址中时,short_tag off
其他short_tag on
达到此目的的.htaccess规则是什么?
答案 0 :(得分:1)
首先,您需要了解.htaccess
中不完全,因为php_flag
指令是无条件的。
以下是解决方案以使其有效:
第1步:在您的根.htaccess中有以下代码:
RewriteEngine On
RewriteCond %{QUERY_STRING} (^|&)st0= [NC]
RewriteRule !^_st0\.php/ _st0.php%{REQUEST_URI} [L]
<Files _st0.php>
php_flag short_open_tag on
</Files>
第2步:在_st0.php
中创建名为DocumentRoot
的文件:
<?php include substr($_SERVER["PATH_INFO"], 1); ?>
以下是它的工作原理:
mod_rewrite
会将st0
参数的每个请求重写为/_st0.php
。<Files _st0.php>
指令会有条件地仅为文件short_open_tag
打开/_st0.php
。/_st0.php
只会将请求转发给您的实际请求URI,因此仅针对您的参数short_open_tag
的网址启用st0
。