<Files ~ (\.php)>
Options +SymLinksIfOwnerMatch
</Files>
AddDefaultCharset utf-8
RewriteEngine on
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ index.php [NC,L]
RewriteRule ^([A-Za-z0-9-]+)/([0-9]+)/([0-9]+)$ index.php?lang=$1&menu=$2&submenu=$3 [L]
これを辿る場合は、ファイルシステム内のファイルまたはディレクトリではありませんすべてのものを取ると、index.phpのにそれを書き換えるようにApacheを語りました。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ index.php [NC,L]
これがそうしていることです。あなたが実際に達成しようとしているかを理解するのに十分な情報を提供しなかった
<Files ~ (\.php)>
Options +SymLinksIfOwnerMatch
</Files>
AddDefaultCharset utf-8
RewriteEngine on
RewriteBase/
# if file/director does not exist, and if it matches the pattern
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([A-Za-z0-9-]+)/([0-9]+)/([0-9]+)$ index.php?lang=$1&menu=$2&submenu=$3 [QSA,L]
# then if it did not match the pattern, send it to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ index.php [NC,L]
注:
あなたはこのようにそれを行う必要があり、これはあなたがやりたいようにするには。しかし、私の推測は、このようなものです。また、index.php(QSA)のクエリ文字列に値を追加することを前提としています。これは通常はあなたが望むものです。
しかし、すべてのURLが何をすべきかを指定するまでは、それ以上は推測できません。
file/directory以外のものをマッチさせ、index.php(L)の最後のコマンドとしてそれ以上書き直すことは、リクエスト処理を終了するので、それは決して2番目のケースに当たらないことに注意してください。
問題は正確に何が問題になりますか?現時点では、現在の情報に基づいて何も答えられません。 –
質問:url "example.com/de/1/0"がurlのように機能しない理由 "example.com/index.php?lang=de&menu=1&submenu=0" – Max
このページにある "example.com/index.php "lang = de&menu = 1&submenu = 0"私は "About company"を持っていますが、この "example.com/de/1/0" URLは "Home page"をロードします。書き直しURLで私はまた "会社について"が必要です – Max