所以我有一个重写规则,它接受对 URL 字符串的请求/site-aboutpage
并将其重写为/site/site-aboutpage
. 效果很好!但是,我有带有一两个连字符的 URL 字符串,我不知道如何处理这些。/site-name/aboutpage
or/site-name/about-page
应该改写为/site-name/site-name-aboutpage
or/site-name/site-name-about-page
这是我需要为其创建规则的 URL 站点:
/biomedical-sciences
/allied-health
/body-donation-program
上述 URL 是正确的,并且是其各自站点的根目录。
下面的重写规则将 URL 更改为
/allied/allied-health
/biomedical/biomedical-sciences
/body/body-donation
我想我可能需要两个规则来处理上述项目。但缺点是根目录URL不应该被重写,只有在最后一个单词后面有字符,即while/allied-health
不会被重写,/allied-health-about
才会被重写为/allied-health/allied-health-about
。有道理?
这就是我所拥有的
RewriteCond %{REQUEST_URI} !^/body-donation-program
RewriteCond %{REQUEST_URI} !^/allied-health
RewriteCond %{REQUEST_URI} !^/biomedical-sciences
RewriteRule ^([^/]+)-([^/]+)/?$ /$1/$1-$2/ [L,R=301]
前三个规则是有条件的,因此最后一行的重写规则不会干扰它们。