Apache urlrewrite语言具体

时间:2016-08-11 19:46:23

标签: apache .htaccess url-rewriting

我的网站有两种语言,德语和英语。 我现在工作的URL Rewrite是:

RewriteRule ^(de|en)/(.*)$  index.php?lang=$1&content=$2 [L,QSA]

lang参数定义语言,内容参数 - 权限,内容。 我现在想要的是,如果有人使用www.example.com($ URL)访问我的网站,则应将其重定向到$ URL / en /。 如果有人附带其他语言,则de或en($ URL / cz /) - >重定向到$ URL / en /

第二条规则应如何看待?

更新:

我现在有:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(de|en)/(.*)$  index.php?lang=$1&content=$2 [L,QSA]

RewriteCond %{QUERY_STRING} !^lang=(de|en)
RewriteRule (.*) /en/ [R=301,L]

那应该是诀窍,但我的css / js /等。消息来源现在也受到这些条件的影响。 %{REQUEST_FILENAME} !-d%{REQUEST_FILENAME} !-f似乎无效。

UPDATE2: 珠瑚! 在第一个条件/规则集之后,必须再次设置文件和目录的条件,即代码:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(de|en)/(.*)$  index.php?lang=$1&content=$2 [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING} !^lang=(de|en)
RewriteRule (.*) /en/ [R=301,L]

0 个答案:

没有答案