我试图通过在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]
答案 0 :(得分:0)
您可以使用规则强制执行尾随斜杠将此规则放在根目录中.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]