我正试图通过在URL中实现语言代码(en/es)来使我的网站成为多语言网站。到目前为止,它运行良好,所有链接都会自动切换到您选择的语言。除了主页。
一个表示mydomain.com/en/staff.php
的链接将使用正确的语言,所有链接都将自动工作(例如en/home.php)。
如果我忘了后面的斜线,那就是家。mydomain.com/en/
工作得很好,而mydomain.com/en
(无斜线)没有正确更新链接。
使用mod_rewrite有办法解决这个问题吗?还是我必须手动在HTML中写出链接?
Options -MultiViews
RewriteEngine on
RewriteBase /
RewriteRule ^([a-zA-Z]{2})/?$ index.php?lang=$1 [QSA,L]
RewriteRule ^([a-zA-Z]{2})/('w+)'.php $2.php?lang=$1 [QSA,L]
您可以使用规则强制执行尾部斜线将此规则放在根目录中。htaccess:
DirectorySlash On
Options -MultiViews
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule [^/]$ %{REQUEST_URI}/ [L,R=301]
RewriteRule ^([a-zA-Z]{2})/$ index.php?lang=$1 [QSA,L]
RewriteRule ^([a-zA-Z]{2})/('w+)'.php$ $2.php?lang=$1 [QSA,L]