代码之家  ›  专栏  ›  技术社区  ›  Matthew Daly

重写规则与包含哈希的URL不匹配

  •  1
  • Matthew Daly  · 技术社区  · 6 年前

    我目前正在努力制定一个htaccess规则——我对htaccess的知识相当缺乏。

    我想在内部重写(即不重定向)一个包含 http://example.com/resources/3d/35d891df36cc4f08e10915e267ff54e4/index.php http://example.com/3d/resources/35d891df36cc4f08e10915e267ff54e4/ 为了在一些遗留代码中解决一个非常糟糕的实现。我已经编写了以下规则来执行重定向:

    RewriteCond %{REQUEST_URI} ^/resources/3d/([a-zA-Z0-9]+)/index.php$
    RewriteRule /3d/resources/$1 [NC]
    

    然而,虽然第一部分是匹配的,第二部分不是,我看不出哪里出错了。还有人能指出错误吗?

    htaccess测试仪链接 here

    1 回复  |  直到 6 年前
        1
  •  1
  •   Joe    6 年前

    你真的很快就要开始工作了。所以我做了两个小小的改变来实现这个目标:

    RewriteCond %{REQUEST_URI} ^/resources/3d/([a-zA-Z0-9]+)/index.php$
    RewriteRule ^ /3d/resources/%1? [NC]
    

    添加 ^ 重写规则和更改 $1 %1 .你的使用 $ 再次获取资源目录而不是查询,将其更改为 %1个 解决了这个问题。我又加了一句 ? 停止将任何进一步的查询添加到url的末尾。

    测试链接-> Here