0

我正在寻找没有“#-”的相同 url 的重写规则。# 是文章 ID,因此它随每篇特定文章而变化。类别名称也会发生变化。

www.site.com/foldername/categoryname/45-article<br>
www.site.com/foldername/categoryname/334-article<br>
www.site.com/foldername/anothercategoryname/634-article

我用了...

RewriteEngine On<br>
RewriteRule ^(.*)/[\d]*-(.*)$ /$1/$2 [R=301,L]

这适用于所有文件夹名称及其类别,但我的问题是我需要它仅适用于某些文件夹名称和该文件夹名称中的每个类别。所以我希望有一个与我使用的规则相似的规则,但我指定了特定的文件夹名称。感谢您在此问题上提供的任何帮助。

4

1 回答 1

1

只需匹配文件夹名称即可。您不提供任何内容,我会说您只想匹配文件夹 foo、bar 和 baz:

RewriteRule ^(foo|bar|baz)/([^\/]+)/[\d]+-(.+)$ /$1/$2/$3 [R=301,L]
                  ^^^        ^^^    ^^^^^^
                   1          2        3

你在这里:

  1. 首先匹配您要匹配的文件夹子集
  2. 然后你匹配这些文件夹中的任何类别
  3. 然后你删除数字

次要的挑剔:当您知道您的表达式将匹配字符(例如,在您的文章名称中的破折号之后)时,最好.+使用.*. 后者将匹配零个字符,我的猜测是这不是一个有效的用例,所以最好不要允许它。

于 2013-02-27T17:30:21.953 回答