.htaccess重写以将目录转换为/key/value/key/value
我以前见过它,其中使用规则将URL上的目录转换为key=value请求查询 我不知道该怎么做,这样我就可以有多对了 例如:.htaccess重写以将目录转换为/key/value/key/value,.htaccess,url,.htaccess,Url,我以前见过它,其中使用规则将URL上的目录转换为key=value请求查询 我不知道该怎么做,这样我就可以有多对了 例如: http://www.example.com/mykey/myvalue/mykey2/myvalue2 将映射到: http://www.example.com?mykey=myvalue&mykey2=myvalue2 谢谢。我见过的这种模式最常见的用法是在Zend框架中,但我相信这是通过前端控制器(即PHP代码)实现的。我相信,没有办法通过mod_rewr
http://www.example.com/mykey/myvalue/mykey2/myvalue2
将映射到:
http://www.example.com?mykey=myvalue&mykey2=myvalue2
谢谢。我见过的这种模式最常见的用法是在Zend框架中,但我相信这是通过前端控制器(即PHP代码)实现的。我相信,没有办法通过mod_rewrite匹配未知数量的匹配。也就是说,如果你知道最多会有3对,你可以使用
RewriteRule ^([^/]+)/([^/]+)/?$ /index.php?$1=$2 [QSA,L]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/$ /index.php?$1=$2&$3=$4 [QSA,L]
RewriteRule ([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/$ /index.php?$1=$2&$3=$4&$5=$6 [QSA,L]
…但如果没有已知的最大值,则无法执行。使用此.htaccess代码对基于
键/值的URI进行基于递归的转换:
Options +FollowSymLinks -MultiViews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)(/.*)?$ $3?$1=$2 [N,QSA]
RewriteRule ^(/[^/]+|[^/]+/|/?)$ /index.php [L,QSA]
使用这些规则可以创建http://localhost/n1/v1/n2/v2/n3/v3/n4/v4
将在内部重定向到http://localhost/?n4=v4&n3=v3&n2=v2&n1=v1
将由/分隔的每对URL段视为查询字符串的名称-值对。但请记住,如果URI没有偶数个段,例如:http://localhost/n1/v1/n2/
然后它将被重定向到http://localhost/?n1=v1
,丢弃多余的氮气。这里的教程非常好
如何做到这一点,以便在实施此规则之前需要url的另一部分,例如http://localhost/rewrite/n1/v1/n2/v2/
使用RewriteRule^(rewrite)/([^/]*)/([^/]*))/([^/]*)(/.*)?$/$1/$4?$2=$3[L,QSA,NC]
这是我需要包括的唯一一行吗?因此,在RewriteRule^(data)/([^/]*)/([^/]*)(/.*)$/datahandler.php/$1/$4?$2=$3[L,QSA,NC]
?不可能在注释中放置代码,建议您根据具体要求创建一个新问题,我将尝试回答。