【问题标题】:htaccess URL rewrite isn't working with hyphenshtaccess URL 重写不适用于连字符
【发布时间】:2020-01-22 01:33:02
【问题描述】:

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

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

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

我尝试过使用在线引用添加几个正则表达式开关,但我完全感到困惑。

这是有效的 URL:

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

但如果商家名称中有连字符,则页面返回 404。例如:

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

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

【问题讨论】:

    标签: regex .htaccess mod-rewrite url-rewriting


    【解决方案1】:
    RewriteRule ^/?company/(\w+)/?$ /company-page.php?pURL=$1 [END]
    

    \w 速记字符类不包括连字符。具体来说,这匹配a-z、A-Z、0-9 和_(下划线)。

    要匹配连字符以及上述内容,请将正则表达式子模式 \w 更改为 [\w-],这是一个现在包含连字符的字符类。

    【讨论】:

      猜你喜欢
      • 2016-01-02
      • 1970-01-01
      • 2015-11-29
      • 2018-09-15
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      • 2019-05-26
      • 2018-08-24
      相关资源
      最近更新 更多