条件php短标签的.htaccess规则

时间:2014-09-12 08:51:17

标签: .htaccess

我允许使用以下内容在.htaccess文件中使用php短标记:

php_flag short_open_tag on

我想让这个有条件,即,当param st0在网址中时,short_tag off其他short_tag on

达到此目的的.htaccess规则是什么?

1 个答案:

答案 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); ?>

以下是它的工作原理:

  1. mod_rewrite会将st0参数的每个请求重写为/_st0.php
  2. <Files _st0.php>指令会有条件地仅为文件short_open_tag打开/_st0.php
  3. /_st0.php只会将请求转发给您的实际请求URI,因此仅针对您的参数short_open_tag 的网址启用st0