Nginx重写什么都不做

用户名

我用PHP和MySQL创建了一个小CMS。现在我尝试激活NGINX重写,但是它不起作用,我不明白为什么?

(示例)我有一个页面

http://www.example.com/cars.php?id=bmw

我尝试使用此规则

最后重写^ / listings /(.*)$ /listing.html?listing=$1;

来自:https : //www.nginx.com/blog/creating-nginx-rewrite-rules/

但这是行不通的。

最后重写^ / cars /(.*)$ /cars.php?id=$1;

我得到了相同的丑陋网址http://www.example.com/cars.php?id=bmw

我应该在PHP文档中更改URL锚吗?

<a href="cars.php?id='.$row['name'].'"> BWM </a>

<a href="cars/'.$row['name'].'"> BWM </a>

当我这样做的时候。但是,当我在联系页面上从BMW一侧单击时,会得到这个奇怪的URL

http://www.example.com/cars/contact

有谁知道我做错了什么?

理查德·史密斯

在您的文档中,您要指定不带斜杠的URI。这意味着它们被认为是相对于当前页面的。

您想要使用漂亮的URI(例如:)/cars/bmw,这很好,但是它包含一个/看起来像目录路径的嵌入式URI 目录路径用于构造不包含前导的URI /

解决方案是为所有URI提供前导/,这将避免任何歧义。

例如:

<a href="/cars/'.$row['name'].'"> BWM </a>
<a href="/contact"> Contact Page </a>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章