我的网站有两种语言。 (en/fr
)。 en
是默认语言,我使用此网址显示:
mydomain.com/
mydomain.com/news.php?id=XX
对于第二语言我有这个网址:
mydomain.com/index.php?lang=fr
现在我使用.htaccess
重写网址,如下所示:
RewriteEngine On
RewriteBase /
RewriteRule ^(fr)(/)?$ index.php?lang=$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^((fr)/)news/([0-9]+)/([A-Za-z0-9-]+)/?.html$ news.php?id=$1 [L]
现在输出:
mydomain.com <-- WORKED defualt
mydomain.com/fr/ <-- WORKED defualt
mydomain.com/fr/news/id/title.html <-- WORKED show news in fr language
mydomain.com/news/id/title.html <-- for default language NOT WORKED
默认语言(mydomain.com/news/id/title.html
)不起作用。我该如何解决这个问题?
注意:对于默认语言,我无需将/en/
添加到网址。
答案 0 :(得分:1)
尝试:
RewriteEngine On
RewriteBase /
RewriteRule ^(fr)(/)?$ index.php?lang=$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^((fr)/)news/([0-9]+)/([A-Za-z0-9-]+)/?.html$ news.php?id=$2&lang=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^news/([0-9]+)/([A-Za-z0-9-]+)/?.html$ news.php?id=$1 [L]
您错过了在没有/fr/
的情况下重写的规则。