1

以下の .htaccess ファイルを使用して、URL に何も見つからない場合に「言語プレフィックス」へのリダイレクトを強制しています。したがって、domain.com/news と入力すると、domain.com/en/news にリダイレクトされます - これは正常に機能します。

このルールは、images、swf、myphp などの特定のフォルダーには適用しないでください。最初の 2 つは問題なく動作するため、domain.com/swf にアクセスすると、ディレクトリ コンテンツのリストが表示され、「en」が追加されません。

ただし、「myphp」フォルダー (これは phpmyadmin インストールです) では機能しません。通常は myphp/index.php をロードしますが、ルールにファイル名を追加しても違いはありません。ページはロードし続けますが、何も起こりません。誰かが理由を知っていますか?

RewriteEngine On
RewriteBase /

#force redirect to language specific page
RewriteCond $1 !^(en|fr|nl)$

#dont apply the rule to the assets folders
RewriteCond $1 !^images$
RewriteCond $1 !^swf$
RewriteCond $1 !^myphp$

#redirect to default EN page if no language param is present in URI
RewriteRule ^([^/]+)/.* /en/$0 [L,R=301]

#remove index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
RewriteRule ^(.*)$ /index.php?$1 [L]
4

1 に答える 1

1

URLにさらにある場合、フォルダー名の後の行末($)を一致させようとするために問題が発生している可能性があるようです。フォルダ名にドル記号を付けないとどうなりますか?

于 2010-02-03T13:45:56.620 に答える