php if$\服务器脚本\名称和请求\ URI将带有查询字符串的文件视为不同的文件
我使用了php if语句的一些变体来根据请求的文件解析内容,例如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
/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'): ?>