我有一个名为website.com/example/index.php的网站,其中有一个名为example in root(root / example / index.php)的目录。到目前为止我有:
Options +FollowSymLinks -MultiViews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/example/$1\.php -f [NC]
RewriteRule ^(.+?)/?$ /example/$1.php [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC]
RewriteRule ^(.+?)/?$ /$1.php [L]
现在我想用西班牙语向我的网站添加翻译。在index.php中,我通过href ="?lang = en_US"来调用英文版本。和西班牙语通过href ="?lang = es_ES"所以在我的浏览器网址中,切换到西班牙语时我得到http://website.com/example/?lang=es_ES。我的问题是我如何制作网址:website.com/es/example/index或没有物理目录en或es的任何页面。
答案 0 :(得分:0)
将您的第一个RewriteRule更改为:
RewriteRule ^(en|es)/(.+?)/?$ /example/$2.php?lang=$1 [L,QSA]
这假设您的所有网址都包含en或es,并且/ example /中的所有脚本都可以接受GET变量lang。 $ 1表示语言,QSA表示查询字符串追加,因此如果用户访问/ example / somepage?somevar = 1,somevar仍会传递给$ 2.
请注意,您的第二个RewriteCond没有意义,因为还没有定义$ 1.