我用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] 删除。
我来说两句