因此,我制定了一個重寫規則,它接受URL字符串/site-aboutpage
的請求並將其重寫爲/site/site-aboutpage
。這效果很好!然而,我有一個或兩個連字符的URL字符串,我不知道如何處理這些。 /site-name/aboutpage
或/site-name/about-page
應該重寫/site-name/site-name-aboutpage
或/site-name/site-name-about-page
用一個或多個連字符處理URL字符串的重寫規則
這裏的URL的網站,我需要爲創建規則:
/biomedical-sciences
/allied-health
/body-donation-program
上述網址是否正確,並且是各自站點的根目錄。下面
重寫規則改變的URL
/allied/allied-health
/biomedical/biomedical-sciences
/body/body-donation
我想我可能會需要對上述項目的兩個規則。但是缺點是根目錄URL不應該被重寫,只有在最後一個字之後有字符,即/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]
前三個規則條件語句,這樣在最後一行重寫規則不會干涉他們。
如果'/ body-donation-program'被重定向到'/ body/body-donation',那麼如何將/ allied-health-about重寫爲/ allied-health/allied-health-about'混亂。 – anubhava
嘿anubhava,謝謝你的回覆。這裏需要注意的是頂級目錄是學校或程序的名稱。 '/ body-donation-program'和'/ allied-health'都是程序。我們將網站遷移到CMS。之前我們的網址結構是'平坦的'。所以一切都通過連字符分開。因此,舊網址的結構類似於「/ body-donation-program-aboutpage」。現在,網址的結構類似於'/ body-donation-program/aboutpage'實際上,我們只想抓住舊網址並將它們路由到相應的頁面。不知道這是否有助於澄清事情。 –
還不清楚。在最後一個連字符前面的文本是否爲目錄名,文本的其餘部分是文件名是否總是如此? – anubhava