.htaccess 如何使用htaccess拆分URL

.htaccess 如何使用htaccess拆分URL,.htaccess,url,split,.htaccess,Url,Split,例如: google.com/en/game/game1.html 应该是 google.com/index.php?p1=en&p2=game&p3=game1.html 如何拆分URL并发送index.php“/?部分只有在查询参数长度固定的情况下才能实现这一点。否则,还有另一种方法,但需要解析应用程序中的路径 定长实现 以下规则匹配所有三个URL部分,然后将它们作为命名查询参数重写到index.php RewriteRule ^([^/]+)/([^/]+)/(.+)$ index.ph

例如:
google.com/en/game/game1.html
应该是
google.com/index.php?p1=en&p2=game&p3=game1.html


如何拆分URL并发送index.php“/?

部分只有在查询参数长度固定的情况下才能实现这一点。否则,还有另一种方法,但需要解析应用程序中的路径

定长实现 以下规则匹配所有三个URL部分,然后将它们作为命名查询参数重写到index.php

RewriteRule ^([^/]+)/([^/]+)/(.+)$ index.php?p1=$1&p2=$2&p3=$3
这重写了:

/en/game/game1.html
/en/game/game1.html
致:

未知长度实现 这重写了:

/en/game/game1.html
/en/game/game1.html
致:

然后您可以解析应用程序中的路径


编辑:)若要使重写规则仅在URL的第一级由两个字符组成时匹配,请执行以下操作:

RewriteRule ^([a-zA-Z]{2})/([^/]+)/(.+)$ index.php?p1=$1&p2=$2&p3=$3
您还可以为未知长度实现执行此操作,以便:

RewriteRule ^[a-zA-Z]{2}/ index.php?path=$0

只有当查询参数的长度固定时,才能实现这一点。否则,还有另一种方法,但需要解析应用程序中的路径

定长实现 以下规则匹配所有三个URL部分,然后将它们作为命名查询参数重写到index.php

RewriteRule ^([^/]+)/([^/]+)/(.+)$ index.php?p1=$1&p2=$2&p3=$3
这重写了:

/en/game/game1.html
/en/game/game1.html
致:

未知长度实现 这重写了:

/en/game/game1.html
/en/game/game1.html
致:

然后您可以解析应用程序中的路径


编辑:)若要使重写规则仅在URL的第一级由两个字符组成时匹配,请执行以下操作:

RewriteRule ^([a-zA-Z]{2})/([^/]+)/(.+)$ index.php?p1=$1&p2=$2&p3=$3
您还可以为未知长度实现执行此操作,以便:

RewriteRule ^[a-zA-Z]{2}/ index.php?path=$0

我如何确定URL“en/”的第一部分是2个字符?所以所有语言都是2个字母,如果URL是3个字母,比如“enw/”,那么重写就不应该起作用了?我如何确保URL“en/”的第一部分是2个字符?所以所有语言都是2个字母,如果URL是3个字母,比如“enw/”,那么重写就不起作用了?