Apache mod_是否将路径名重写为查询参数? 我想使用Apache的代码> MODY-Read < /Cord>,以便能够将路径的每个文件夹作为一个特定的查询参数,例如考虑以下内容:

Apache mod_是否将路径名重写为查询参数? 我想使用Apache的代码> MODY-Read < /Cord>,以便能够将路径的每个文件夹作为一个特定的查询参数,例如考虑以下内容:,apache,mod-rewrite,Apache,Mod Rewrite,基本示例 请求的Url:http://domain.com/shoes/prada/image-1/ 服务页面:http://domain.com/?cid=shoes&bid=prada&pid=image-1 在这个场景中,有3个子文件夹被请求(/shoes/,/prada/然后image-1),因此第一个子文件夹作为cid传递到实际页面,第二个子文件夹作为bid,第三个子文件夹作为pid 完整示例 但是,我也希望它能够根据所请求的子文件夹的数量提供特定的页面,例如 请求的Url:http:

基本示例

请求的Url:
http://domain.com/shoes/prada/image-1/

服务页面:
http://domain.com/?cid=shoes&bid=prada&pid=image-1

在这个场景中,有3个子文件夹被请求(
/shoes/
/prada/
然后
image-1
),因此第一个子文件夹作为
cid
传递到实际页面,第二个子文件夹作为
bid
,第三个子文件夹作为
pid

完整示例

但是,我也希望它能够根据所请求的子文件夹的数量提供特定的页面,例如

请求的Url:
http://domain.com/shoes/prada/

服务页面:
http://domain.com/shop.php?cid=shoes&bid=prada

到目前为止,我只找到了基于正则表达式的
mod_rewrite
匹配,但我的路径会有很大的不同,这就是为什么我希望根据访问的文件夹数量设置条件(请注意,我对正则表达式不太在行-我认为通配符会有所帮助,但我不确定从哪里开始)


在此方面的任何帮助都将不胜感激!这是相当冗长的,所以如果你需要任何更多的信息澄清,请让我知道

通过一点工作,我能够调整一些正则表达式,并为我想要的设置一个工作规则集:

RewriteEngine on
RewriteRule ^(.*)/(.*)/(.*)/(.)?$ product.php?tid=$1&sid=$2&eid=$3 [L]
RewriteRule ^(.*)/(.*)/(.)?$ brand.php?tid=$1&sid=$2 [L]
RewriteRule ^(.*)/(.)?$ shop.php?tid=$1 [L]
这与示例有点不同,但这正是我最初的目的

这允许重写url的多达四个文件夹深度,每个文件夹的“名称”作为参数,每个额外的深度级别将url重写为单独的资源,例如:

http://x.com/shoes/prada/2011-high-heels/ -> http://x.com/product.php?tid=shoes&sid=prada&eid=2011-high-heels

@faa上测试,第一个示例仅显示我的问题的基础(例如,从文件夹中获取的参数),而第二个示例显示基于参数数量的页面。我所说的“访问的文件夹数量”是指传递的参数数量,即1个文件夹=1个参数,如so/path/to/folder->1=path,2=to,3=folder。