漂亮的网址.htaccess和QUERY_STRING

时间:2014-01-23 16:55:21

标签: php regex .htaccess mod-rewrite multilingual

我的htaccess有一些问题。 我的链接:http://example.com/log/?lang=en log - 它是一个不同的目录和lang(en或uk或ru)   但我想要一些漂亮的网址: http://example.com/en/log/

在我使用正则表达式之前:

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

RewriteRule ^([a-z]{2}(-[A-Z]{2})?)/(.*) $3?lang=$1 [L,NC,QSA] 

但是找不到漂亮网址的决定

我想要的是什么:

根据我的逻辑,我必须剪切lang = en并将我的主机与request_uri粘贴在一起 喜欢:host / en /?request_uri 但是怎么做呢?

1 个答案:

答案 0 :(得分:1)

这样做:

RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} \s/+(log)/\?lang=([^\s&]+) [NC]
RewriteRule ^ /%2/%1? [R=302,L]

RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -l
RewriteRule ^ - [L]

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

RewriteRule ^([a-z]{2}(-[A-Z]{2})?)/(.*) $3?lang=$1 [L,NC,QSA]