0

こんにちは、助けが必要です。問題: index.php ですべてを処理する CMS を使用してサイトを多言語化しました。ルートからアクセスするすべての .html ページをリダイレクトしようとしています。

http://www.website.com/englishpage.html http://www.website.com/en/englishpage.html リダイレクトしたい

次に、2 番目のリダイレクトがその情報を分析し、それを index.php に送信して正しいページを提供します。

現在、リダイレクト エラーが多すぎます

# The Friendly URLs part
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*\.html)$ en/$1\.html [R=301,L]
RewriteRule ^(en|ru)?(\/)?(.*)$ index.php?c=$1&q=$3 [L,QSA]

ここで何が間違っているのですか

ありがとう

4

1 に答える 1

1

(.*\.html)は十分に具体的ではないため、 にも一致し/en/englishpage.htmlます。また.html、最後に追加し続けます。

したがって、に/englishpage.htmlリダイレクトし、など/en/englishpage.html.htmlにリダイレクトします。/en/en/englishpage.html.html.html

両方の問題を解決するには:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)\.html$ en/$1\.html [R=301,L]

RewriteRule ^((en|ru)/)?(.*)$ index.php?c=$1&q=$3 [L,QSA]

PSをエスケープする必要はありません/

于 2013-02-04T18:07:01.843 に答える