htaccess URL改写不适用于连字符

问题描述 投票:1回答:1

我有一些很棒的代码,可以用.htaccess重写某些URL。而且效果很好。

但是,URL似乎不接受连字符。

RewriteRule ^/?company/(\w+)/?$ /company-page.php?pURL=$1 [END]
RewriteRule ^/?company/(\w+)/(\d+)/?$ /company-page.php?pURL=$1&page=$2 [END]

我已经尝试过在线使用引用来放置几个正则表达式开关,但是我完全感到困惑。

这里是有效的网址,效果很好:

https://www.example.com/company/leapdifferent/

但是公司名称中带有连字符,页面将返回404。例如:

https://www.example.com/company/bds-dcor-prefab-pltd-21733

简而言之,我很想尝试修改当前的正则表达式以接受连字符。

regex .htaccess mod-rewrite url-rewriting
1个回答
0
投票
RewriteRule ^/?company/(\w+)/?$ /company-page.php?pURL=$1 [END]

\w速记字符类不包含连字符。具体来说,它匹配a-zA-Z0-9_(下划线)。

要与上述字符连字符匹配,然后将正则表达式子模式\w更改为[\w-],即现在包含连字符的字符类。

© www.soinside.com 2019 - 2024. All rights reserved.