私はサブディレクトリ/ cmsで.htaccessファイルを使用していて、このサブディレクトリをRewriteBaseとして使用しています。リダイレクトは 'backend.php'に行き、私が望む変数を送ります。それは二重言語のサイト(nl | en)、オランダ語と英語です。 %{REQUEST_URI}が(nl | en)で始まる限り、すべてうまく動作します。.htaccess国コードを追加するために書き換えます(見つからない場合)
しかし、nl | enを省略した場合、デフォルトのオランダ語にフォールバックする必要がありますが、これを次の.htaccesファイルに追加できます。私がしようと検索が、これを実現するために右の構文を見つけることができませんされています:
RewriteEngine On
RewriteBase /cms/
RewriteCond %{REQUEST_URI} !(/$|\.)
RewriteRule (.*) %{REQUEST_URI}/ [R=301,L]
RewriteCond %{REQUEST_URI} !(^(nl|en)/)
#RewriteRule (.*) This is where the solution should be used ?
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !\.[a-zA-Z]{2,4}$
RewriteRule ^(nl|en)/([^/]+)/$ backend.php?page=$2&language=$1 [QSA,NC,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !\.[a-zA-Z]{2,4}$
RewriteRule (nl|en)(.*)/(\d+)/$ backend.php?page=$2&id=$3&language=$1 [QSA,NC,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !\.[a-zA-Z]{2,4}$
RewriteRule (nl|en)(.*)/(\d+)/(.+)/$ backend.php?page=$2&id=$3&task=$4&language=$1 [QSA,NC,L]
おかげオラフを行う必要があり、それは私が(もちろん)行く方法を考えているが、ときに私 RewriteRule!^(?:nl | en)/ nl%{REQUEST_URI} [R、L]これは起こるはずです: http:// mysite:8888/cms/nl/overview/- は有効です。 URL これはどうなりますか: http:// mysite :8888/cms/overzicht/- 書き換え後: http:// mysite:8888/cms/nl/cms/overzicht/ –
オラフ、ありがとうございました。 : http:// mysite:8888/cms/nl/overview/- は有効なURLです。 これは何が起こるかです: ます。http://個人用サイト:8888/CMS/overzicht/-afterリライト次のようになります。 ます。http://個人用サイト:8888/CMS/NL/CMS/overzicht/ のCMSの一部URLは、明らかに%{REQUEST_URI} –
@DMPの一部であるので、繰り返されます。はい、私はそれを逃しました、ごめんなさい。更新された回答があなたに役立つかどうかを確認してください。 –