在我的定制CMS我有一个链接页面像这样:PHP语言和的.htaccess
www.mywebsite.com/index.php
现在,我尝试使用多种语言的网页,所以我的索引页上进行测试。通过MySQL和语言切换器,我可以成功地从所选语言获取内容。
所以,链接变成这样的英语和德语:
www.mywebsite.com/index.php?lang=en
www.mywebsite.com/index.php?lang=de
有了这个htaccess的代码,我去掉.php然后index.php文件:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
所以链路变得像这样:
www.mywebsite.com/?lang=en
www.mywebsite.com/?lang=de
对于SEO的目的我想删除参数LANG = EN或LANG = DE,并把/ EN或/日,S? ○URL看起来像这样:
www.mywebsite.com/en
www.mywebsite.com/de
我已经与htaccess的尝试这样做:
RewriteRule ^/(.+?)/(.*)$ $2?lang=$1 [L]
或本:
RewriteRule ^/(en|de)/(.*)$ $2?lang=$1 [L]
但是,当我试图进入网页WWW。 mywebsite.com/en或www.mywebsite.com/de,内容不会更改。
我想我必须在htaccess的代码错误...
而且我想要做的其他页面相同的功能,让我们说这个页面:
www.mywebsite.com/posts?lang=en
成为
www.mywebsite.com/en/posts
不应该是'$ 2.php?lang = $ 1'吗?最初你正在重写一个'.php'文件。在语言变体中缺少这一点。 – ROAL
你好,ROAL。我也试过这个代码:** RewriteRule^/(。+?)/(。*)$ $ 2.php?lang = $ 1 [L] **,但它不会改变任何东西。有了这个:** RewriteRule^/(。+?)/(。*)$ $ 2?lang = $ 1 [L] **但它仍然不起作用。 – user2519032
尝试删除第一个斜杠,使其成为'RewriteRule ^(。+?)/(。*)$ $ 2.php?lang = $ 1 [L]'。 – ROAL