Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php if$\服务器脚本\名称和请求\ URI将带有查询字符串的文件视为不同的文件_Php_Regex_Nginx - Fatal编程技术网

php if$\服务器脚本\名称和请求\ URI将带有查询字符串的文件视为不同的文件

php if$\服务器脚本\名称和请求\ URI将带有查询字符串的文件视为不同的文件,php,regex,nginx,Php,Regex,Nginx,我使用了php if语句的一些变体来根据请求的文件解析内容,例如/index.php(我使用的是nginx和php fpm) 简单地说,除非请求基于查询字符串,例如/index.php?135897,否则它是有效的。发生这种情况时,它不再将文件视为index.php,因此无法正确解析内容 如何让这些if语句将查询字符串计数为同一个文件?使用 $scriptName=parse_url($_服务器['SCRIPT_NAME'],PHP_url_路径); 使用 $scriptName=parse

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


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

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

使用

$scriptName=parse_url($_服务器['SCRIPT_NAME'],PHP_url_路径);
使用

$scriptName=parse_url($_服务器['SCRIPT_NAME'],PHP_url_路径);

您正在寻找
strpo
。检查它是否为false(
!==
)。您是否尝试使用.htaccess文件路由您的请求?@Vaishak我正在使用nginx。您正在查找
strpos
。检查它是否为false(
!==
)。您是否尝试使用.htaccess文件路由您的请求?@Vaishak我正在使用nginx。
<?php if (preg_match('#^/(articles/|index\.php|$)#', $_SERVER['REQUEST_URI']) === 1): ?>

<?php if ($_SERVER['SCRIPT_NAME'] == '/index.php'): ?>
$scriptName = parse_url($_SERVER['SCRIPT_NAME'], PHP_URL_PATH);

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