嘿伙计们,我经营一个大型网站,内容网页的网址结构为:site.com/T8siBD
现在,当前正在捕获所有可能ID页面的文件是index.php。
我运行nginx,并将我的404错误页面设置为index.php。
所以任何东西都会转发到index.php(如果不存在的话)
并且
$ex = explode('/', $_SERVER["REQUEST_URI"]);
$item_key = isset($ex[1]) ? addslashes(htmlspecialchars($ex[1])) : ''
我可以很好地取出ID。
这在浏览器中工作正常,但是如果你想要忘记我的任何内容页面,它会给你一个404错误,因为最后,Nginx认为'文件'不存在。
我想绕过这个404错误页面的内容。
我在考虑使用类似的东西:
rewrite ^/(.*)? /index.php?q=$1 last;
但是当我这样做时,它不显示我的驱动器上的任何“现有”文件,并且基本上甚至将图像转发到index.php。
有人知道重写此规则的好方法吗?
答案 0 :(得分:2)
如果你在那里发布完整的NGINX配置,这将是好的...
你可以试试这个:
if( !-f $request_filename ){
rewrite ^/(.*)? /index.php?q=$1 last;
}
或者,更好的方式:
try_files $uri /index.php?q=$uri