即使省略斜杠,如何重写 URL 规则?

Posted

技术标签:

【中文标题】即使省略斜杠,如何重写 URL 规则?【英文标题】:How to URL rewrite rule that works even when omitting the slash? 【发布时间】:2016-08-13 07:19:47 【问题描述】:

我正在尝试编写一个.htaccess URL RewriteRule,这将允许用户不输入斜杠。但是,它不起作用。

下面是我的代码:

RewriteEngine On
RewriteCond %REQUEST_URI ^/cars(.*)
RewriteRule ^/(.*) http://wwwlocal.example.com/$1 [P,NC,L]

当用户输入 http://www.example.com/cars 时,子域应该从我的http://wwwlocal.example.com/ 加载。它仍然在用户的浏览器上显示http://www.example.com/cars/;然而,事实并非如此。它改为显示来自http://wwwlocal.example.com/cars/ 的页面。此外,来自 /cars/images/car1.jpg 的图像也不使用此规则加载。

【问题讨论】:

关于“RewriteRule 使斜线可选”的任何其他尝试,或者您是否搜索过“CSS/images not working with pretty URLs”? 【参考方案1】:

我想我成功了。

RewriteEngine On
RewriteCond %REQUEST_URI ^/cars/?(.*)
RewriteRule ^(.*) http://wwwlocal.example.com/$1 [P,NC,L]

【讨论】:

以上是关于即使省略斜杠,如何重写 URL 规则?的主要内容,如果未能解决你的问题,请参考以下文章

在每个 url 的末尾添加斜杠(需要为 nginx 重写规则)

Apache 重写规则,可以使用或不使用斜杠

Codeigniter重写URL用斜杠替换问号

couchapp:对带有和不带有正斜杠的 URL 进行不同的重写

如何在 apache 2.4 的 url 中删除双斜杠//?

nginx 重写URL尾部斜杠