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

Php 使用.htaccess(Apache)为多语言站点重写URL的帮助,php,windows,apache,url,url-rewriting,Php,Windows,Apache,Url,Url Rewriting,我有一个多语言网站,我正试图用一个假目录重写URL,如下所示: 到 这将解析为404错误 任何帮助都将非常感谢。您的第二次捕获将捕获所有内容,直到URL结束。因此,您可能正在使用扩展名或错误的目录 虽然它不应该影响重定向,但是您没有第三个捕获,所以$3在哪里 查看你的标题,看看它真正重定向到哪里并回复评论。你的第二次捕获将捕获所有内容,直到URL结束。因此,您可能正在使用扩展名或错误的目录 RewriteRule ^(en|fr|es)/(.*?)/(.*?)/(.*) $2.php?id=$

我有一个多语言网站,我正试图用一个假目录重写URL,如下所示:

这将解析为404错误


任何帮助都将非常感谢。

您的第二次捕获将捕获所有内容,直到URL结束。因此,您可能正在使用扩展名或错误的目录

虽然它不应该影响重定向,但是您没有第三个捕获,所以
$3
在哪里


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

你的第二次捕获将捕获所有内容,直到URL结束。因此,您可能正在使用扩展名或错误的目录

RewriteRule ^(en|fr|es)/(.*?)/(.*?)/(.*) $2.php?id=$3&cat=$4&lang=$1 [NC,QSA]
虽然它不应该影响重定向,但是您没有第三个捕获,所以
$3
在哪里

看一下你的标题,看看它真正重定向到哪里,然后回复

RewriteRule ^(en|fr|es)/(.*?)/(.*?)/(.*) $2.php?id=$3&cat=$4&lang=$1 [NC,QSA]
我想你的意思是
NC
(没有案例),而不是
NL
。您引用了不存在的捕获组,并重复了
$2


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

谢谢您的帮助,我使用了这样的方法:重写规则adsInDpt/fr/([0-9]+)/([0-9]+)/([a-zA-Z0-9\.html$adsInDpt.php?Dpt=$1&ad=$2[QSA],这意味着我必须为每个页面编写此规则?不,您可以按照此答案中的规则执行,您只需更改
(en | fr | es)
。再次感谢,但也可以在开始时创建一个虚拟文件夹,例如(site/en/page),但当我们单击链接(Español,francais)时,文件夹将更改为es或fr??感谢您的帮助,我使用了这样的方法:RewriteRule adsInDpt/fr/([0-9]+)/([0-9]+)/([a-zA-Z0-9]+)\.html$adsInDpt.php?Dpt=$1&ad=$2[QSA],这意味着我必须为每个页面编写此规则?不,您可以按照此答案中的规则执行,您只需更改
(en | fr | es)
的位置。再次感谢,但在开始时可以有一个虚拟文件夹,例如(site/en/page),但当我们单击链接(Español,franceçais)文件夹更改为es或fr??