我正在寻找相同网址的重写规则而不使用“# - ”#是文章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]
这适用于所有的foldernames及其类别,但我的问题是我需要它才能在某些foldernames和该foldername中的每个类别中 。所以我希望有一个规则与我使用的规则相似,但我指定了特定的foldernames。感谢您对此事的任何帮助。
答案 0 :(得分:1)
只需匹配文件夹名称。你没有提供任何,我会说你只想匹配文件夹foo,bar和baz:
RewriteRule ^(foo|bar|baz)/([^\/]+)/[\d]+-(.+)$ /$1/$2/$3 [R=301,L]
^^^ ^^^ ^^^^^^
1 2 3
在这里:
次要挑剔:当你知道时,你的表达式会匹配字符(例如,在你的文章名称中的短划线之后),使用.+
而不是.*
是很好的。后者将匹配零个字符,我的猜测是,这不是一个有效的用例,所以最好不要允许它。