.htaccess用于PHP应用中的重定向语言



我有一个多种网站。在PHP中,我正在使所有页面都具有独特的ID,因此我知道要包含哪些文件。所有逻辑都将通过index.php页。

所以,我想让montkuce.com/en/foobar通过这样的get向index.php发送请求:index.php?id = foobar& lang = en

这是我到目前为止所拥有的,它不起作用:

RewriteEngine On
RewriteCond %{HTTP:Accept-Language} ^en [NC]
RewriteRule ^$ http://montkuce.com/en/ [L,R=301]
RewriteCond %{HTTP:Accept-Language} ^de [NC]
RewriteRule ^$ http://montkuce.com/de/ [L,R=301]
RewriteCond %{HTTP:Accept-Language} ^fr [NC]
RewriteRule ^$ http://montkuce.com/fr/ [L,R=301]
RewriteCond %{HTTP:Accept-Language} ^it [NC]
RewriteRule ^$ http://montkuce.com/it/ [L,R=301]
RewriteCond %{HTTP:Accept-Language} ^cz [NC]
RewriteRule ^$ http://montkuce.com/cz/ [L,R=301]
RewriteCond %{HTTP:Accept-Language} ^sk [NC]
RewriteRule ^$ http://montkuce.com/sk/ [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(en|de|fr|it|cz|sk)/(.*)$/?$ index.php?lang=$1&id=2 [QSA,NC,L]

在最后一个规则中,您的正则差距很少。使用此:

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

最新更新