带破折号或连字符的 RewriteRule

RewriteRule with dash or hyphen

根据 SEO 指南,我正在将页面从

更改为 url

website.com/color_red/(下划线)到

website.com/color-red/(破折号/连字符)

/color-red/ 必须简单地生成 ?c=red

在 .htaccess 中,这与下划线完美结合:

RewriteRule ^color_([^/\.]+)/?$ ?c= [L]

不带破折号:

RewriteRule ^color-([^/\.]+)/?$ ?c= [L]

我认为破折号字符必须转义,但我不知道如何转义。

能否请您尝试以下。请确保在测试您的 URL 之前清除您的浏览器缓存。

第一个解决方案: 要在您的网址中同时处理 _-,请尝试以下操作。

RewriteEngine ON
RewriteRule ^color[_-]([^/]*)/?$ ?c= [L]

第二个解决方案: 如果您只想处理 URL 中的 -,请尝试以下操作。

RewriteEngine ON
RewriteRule ^color-([^/]*)/?$ ?c= [L]

一个简单的解决方案是用方括号 [-] :

转义 hypen/dash 字符 -
RewriteRule ^color[-]([^/\.]+)/?$ ?c= [L]