我刚将所有服务器和网络应用从apache移到了nginx。
我有一个创建短网址的应用,它通过创建一个6个字母的文件来完成,文件里面只是URL。我已经设法重新创建nginx重写规则,以便它找到文件并打开它作为php(而不是只是下载它,因为文件上没有.php扩展名)但是脚本将其视为无效的哈希(如所见)在下面的代码中)无论如何只是这样现在只是让我当前的链接工作,它们都只包含一个顶部的URL,我希望它忽略检查并重定向到URL无论如何。
这是正在加载的脚本
<?php
if($_GET['id']){
$id = addslashes($_GET['id']);
if(file_exists("urls/$id"))
{
$url = file_get_contents("urls/$id");
header("location:".$url);
} else {
echo "Error : invalid hash";
}
} else {
echo "Error : no hash";
}
?>
并加载一个调用类似文件的文件,例如“0ke0ea9ts”,它将包含一个url而不包含任何内容。
我允许创建的原始链接(例如url.com/p/0ke0ea9ts)使用以下Nginx重定向代码(注意它们安装在/ p /的子目录中,因此参考)
if (!-e $request_filename){
rewrite ^(.*)$ /p/show.php?id=$1 last;
所以就像我说的那样,重定向通过show.php打开它们但是给了我无效的哈希消息,我怎么能强制它只运行没有检查的URL?