そのため、URL 文字列の要求を受け取り、それを に書き換える書き換えルールを用意してい/site-aboutpage
ます/site/site-aboutpage
。それはうまくいきます!しかし、1 つまたは 2 つのハイフンを含む URL 文字列があり、それらを処理する方法がわかりません。/site-name/aboutpage
orはor/site-name/about-page
に書き換える必要があります/site-name/site-name-aboutpage
/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
上記の項目については、おそらく 2 つのルールが必要になると思います。ただし、要するに、ルート ディレクトリの 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]
最初の 3 つのルールは条件付きであるため、最後の行の書き換えルールがそれらに干渉しません。