使用 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/
的重写规则。
我的网站有两种语言。 (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/
的重写规则。