例如,我的根目录中有两个文件:one.php和two.php。我想通过这些 url 访问它们,而不必实际拥有物理目录 en+de。
- mydomain.com/en/一
- mydomain.com/en/二
- mydomain.com/de/一
- mydomain.com/de/二
所以第一个目录将被“忽略”,只需将带有语言设置的 GET 变量传递给 php 文件,第二个目录是没有扩展名的 php 文件。
到目前为止,这就是我在我的 htaccess 中使用的文件扩展名:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
更新/解决方案
这非常有用:.htaccess rule for language detection
这似乎几乎可以满足我的要求:
RewriteRule ^(en|de|fr)/(.*)$ $2?lang=$1 [L,QSA]
RewriteRule ^(.*)$ $1?lang=en [L,QSA]
另一个附加问题
mydomain.com/en/ one /id45
如果我想将 id45 作为变量传递给one.php,我必须在 htaccess 中添加哪一行?