.htaccess 在htaccess中重写规则以在名称之间添加连字符

.htaccess 在htaccess中重写规则以在名称之间添加连字符,.htaccess,url-rewriting,.htaccess,Url Rewriting,我不确定这是否可行,但我正在尝试使用一行代码重写htaccess文件中的一些URL,而不是为数百个URL中的每一个添加单独的重写 现有URL类似于下面的URL,其中汽车品牌和型号位于一个字符串中 www.exampledomain.co.uk/cars/astonmartindb9/ 我想通过添加一个连字符来分隔make和model,如下所示 www.exampledomain.co.uk/cars/astonmartin-db9/ 这可以做到: RewriteEngine on Rewri

我不确定这是否可行,但我正在尝试使用一行代码重写htaccess文件中的一些URL,而不是为数百个URL中的每一个添加单独的重写

现有URL类似于下面的URL,其中汽车品牌和型号位于一个字符串中

www.exampledomain.co.uk/cars/astonmartindb9/
我想通过添加一个连字符来分隔make和model,如下所示

www.exampledomain.co.uk/cars/astonmartin-db9/
这可以做到:

RewriteEngine on
RewriteRule ^cars/(astonmartin|ford|renault)([^/-]+)/$ /cars/$1-$2/ [R=301,L]

您需要列出所有不同的品牌,以管道字符分隔,如图所示。应该是最简单的解决方案。

您必须更新URL。服务器无法知道make和model从何处开始和结束,也无法知道在何处放置连字符。如果这不是你想要做的,也许可以给出一个更好的例子和你当前的代码。嗨,谢谢你的回复。这就是我要做的,我想改变我现有的网址添加连字符,并做301重定向,这样我就不会失去我现有的搜索引擎排名。我想我将不得不为数百个URL中的每一个编写一个单独的重写。如果没有通用模式,那么是的,就是这样。也许有一个不同品牌的通用模式?你能列出所有的牌子吗?那将是更少的工作。然后重定向可以在make之后添加破折号。我用这种方法添加了一个答案。我的答案对你有用吗,马克?如果使用左上角的勾号,请接受。欢迎来到堆栈溢出。