我有一个htaccess文件,它会从我的网址中删除.php扩展名。它看起来像这样:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
我想添加另一个RewriteRule来修改我的网址:
www.example.com/index ?lang = zh_
到此:
www.example.com / en / index
我想出的代码如下:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
RewriteRule ^(de|en)/(.*)$ $2?lang=$1 [L,QSA]
RewriteRule ^(.*)$ $1?lang=de [L,QSA]
这适用于我的本地XAMPP服务器,但不适用于托管的虚拟主机服务器。
什么可能导致问题,是代码,还是我浏览器中缓存的.htaccess文件?
这段代码不能与我的网站主机兼容吗?
答案 0 :(得分:0)
尝试添加,
Options -MultiViews
除了你的规则。
答案 1 :(得分:0)
您可以使用以下规则:
RewriteEngine On
RewriteRule ^(de|en)/(.*)$ $2?lang=$1 [L,QSA]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+?)/?$ $1.php [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([\w-]+)/?$ $1?lang=de [L,QSA]