mod_rewrite缺少尾部影响链接系统


mod_rewrite missing trailing affects link system

我正试图通过在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]