1

index.php?lang=de で言語を設定する index.php があります。英語はデフォルトの言語であり、index.php?lang=en を使用する必要はありません。

言語が設定されている場合、htaccess でこの条件を使用します

RewriteRule ^([a-zA-Z0-9\-_]+)/$ /index.php?lang=$1 [L]

言語が設定されていない場合

RewriteRule ^([a-zA-Z0-9\-_]+)$ /index.php?pag=$1 [L]

言語とページが設定されている場合

RewriteRule ^([a-zA-Z0-9\-_]+)/([a-zA-Z0-9\-_]+)$ /index.php?lang=$1&pag=$2 [L]

言語、ページ、サブページが設定されている場合

RewriteRule ^([a-zA-Z0-9\-_]+)/([a-zA-Z0-9\-_]+)/([a-zA-Z0-9\-_]+)$ /index.php?lang=$1&pag=$2&spag=$3 [L]

しかし、言語が設定されていない場合、サブページにアクセスできません。英語である必要がある場合

 index.php?pag=services&spag=web_design
 RewriteRule ^([a-zA-Z0-9\-_]+)/([a-zA-Z0-9\-_]+)$ /index.php?pag=$2&spag=$3 [L]

それを機能させる方法はありますか?また、このすべての行を 1 つの行にマージするというアイデアがあれば、すばらしいでしょう。

ありがとう!

4

2 に答える 2

0

次のルールを使用できます。

# just language
RewriteRule ^([a-z]{2})/?$ /index.php?lang=$1 [L,NC,QSA]

# just page
RewriteRule ^([\w-]{3,})/?$ /index.php?pag=$1 [L,QSA]

# lang & page
RewriteRule ^([a-z]{2})/([\w-]+)/?$ /index.php?lang=$1&pag=$2 [L,QSA,NC]

# page & spage
RewriteRule ^([\w-]{3,})/([\w-]+)/?$ /index.php?pag=$1&spag=$2 [L,QSA]

# lang, page & spage
RewriteRule ^([a-z]{2})/([\w-]+)/([\w-]+)/?$ /index.php?lang=$1pag=$2&spag=$3 [L,QSA,NC]
于 2013-09-22T07:21:41.447 に答える