4

joomla サイトの URL を書き換えようとしています。そこに余分なページがあり、その上に他のものがいくつかあります。

私は持っている:

RewriteRule ^company/([^/]+) company?alias=$1 [NC]

company/somecompany に、company?alias=somecompany が提供する URL (転送しない) を表示させたい場所。

代わりに取得するのは、次へのリダイレクトです。

http://www.mydomain.dk/var/www/clients/client2/web5/web/company?alias=somecompany

また、「company/some-company」のように「-」を含めると、書き換えがスキップされ、joomla の書き換えルールに移動します (記事が見つかりません)。

私は何を間違っていますか?

4

2 に答える 2

4

を追加する必要がありRewriteBaseます。書き換えルールのターゲットが先頭のスラッシュで始まらない (絶対 URI にする) 場合、Apache はそれが URI パスかファイル パスかを推測する必要がありますが、ファイル パスであると誤って推測しています。ベースを追加すると、それが URI パスであることを apache に伝えます。

RewriteBase /

または、ターゲットに先頭のスラッシュを追加します。/company/?alias=$1

また、company の末尾にスラッシュを追加し、次の[L]フラグを使用します。

RewriteRule ^company/([^/]+) company/?alias=$1 [L,NC]

末尾のスラッシュの欠落が、mod_dir とDirectorySlashリダイレクトを引き起こしている原因である可能性があります。そして、Lフラグが、最終的に joomla ルールが適用される理由かもしれません。

于 2012-09-30T19:41:08.980 に答える