使用 htaccess 的多个重写器 url

multiple rewriterole url using htaccess

我的网站有两种语言。 (en/fr)。 en 是默认语言,我用这个 url 显示:

mydomain.com/
mydomain.com/news.php?id=XX

对于第二语言,我有这个 url :

mydomain.com/index.php?lang=fr

现在我像这样使用 .htaccess 重写 url :

RewriteEngine On
RewriteBase /
RewriteRule ^(fr)(/)?$  index.php?lang= [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^((fr)/)news/([0-9]+)/([A-Za-z0-9-]+)/?.html$ news.php?id= [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/ 添加到 url.

尝试:

RewriteEngine On
RewriteBase /

RewriteRule ^(fr)(/)?$  index.php?lang= [QSA,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^((fr)/)news/([0-9]+)/([A-Za-z0-9-]+)/?.html$ news.php?id=&lang= [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^news/([0-9]+)/([A-Za-z0-9-]+)/?.html$ news.php?id= [L]

您缺少前面没有 /fr/ 的重写规则。