帮助使用.htaccess(Apache)为多语言站点重写URL

时间:2010-07-07 01:46:39

标签: php windows apache url url-rewriting

我有一个多语言网站,我正在尝试使用这样的假目录重写URL:

http://localhost/theSite/page.php?id=param&cat=param?lang=en,fr,eshttp://localhost/theSite/(en|fr|es)/page/param/param

.htaccess
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^(fr|en|en)/(.*) $2.php?id=$1&cat=$2&lang=$3 [NL,QSA]

这解决为404错误。

任何帮助都是合情合理的。

2 个答案:

答案 0 :(得分:4)

RewriteRule ^(en|fr|es)/(.*?)/(.*?)/(.*) $2.php?id=$3&cat=$4&lang=$1 [NC,QSA]

我想你的意思是NC(没有案例),而不是NL。您提到了不存在且重复$2的捕获组。

答案 1 :(得分:2)

您的第二次捕获将捕获所有内容,直到URL结束。因此,你可能会加倍扩展或错误的目录。

虽然它不应该影响重定向,但是没有第三次捕获,那么$3在哪里?

查看您的标题,看看它真正重定向到哪里并发回评论。