php如果$ _SERVER SCRIPT_NAME和REQUEST_URI将查询字符串的文件视为不同的文件

时间:2015-11-10 06:47:15

标签: php regex nginx

我使用php if语句的几种变体来根据所请求的文件解析内容,例如/index.php(我使用的是nginx和php-fpm)

<?php if (preg_match('#^/(articles/|index\.php|$)#', $_SERVER['REQUEST_URI']) === 1): ?>

<?php if ($_SERVER['SCRIPT_NAME'] == '/index.php'): ?>

简单地说,除非请求基于查询字符串,例如/index.php?135897,否则它会起作用。发生这种情况时,它不再将文件视为index.php,因此无法正确解析内容。

如何将这些if语句用于将查询字符串计为同一个文件?

1 个答案:

答案 0 :(得分:0)

使用parse_url()

$scriptName = parse_url($_SERVER['SCRIPT_NAME'], PHP_URL_PATH);

<?php if ($_SERVER['SCRIPT_NAME'] == '/index.php'): ?>