Url 尝试高级htaccess重写技巧时遇到困难

Url 尝试高级htaccess重写技巧时遇到困难,url,.htaccess,mod-rewrite,variables,Url,.htaccess,Mod Rewrite,Variables,嘿,伙计们,这是我要尝试的: 我想这样做,我可以把所有的url变量和值变成文件夹,所有与一个规则。我希望找到一些方法来做到这一点: www.example.com/var1/val1/var2/val2/varN/valN 在理想的世界中,我可以改写为: www.example.com/index.php?var1=val1&var2=val2&varN=valN 但我也很乐意做这样的事情: www.example.com/index.php?path=/var1/val1/var2/val2/

嘿,伙计们,这是我要尝试的:

我想这样做,我可以把所有的url变量和值变成文件夹,所有与一个规则。我希望找到一些方法来做到这一点:

www.example.com/var1/val1/var2/val2/varN/valN

在理想的世界中,我可以改写为:

www.example.com/index.php?var1=val1&var2=val2&varN=valN

但我也很乐意做这样的事情:

www.example.com/index.php?path=/var1/val1/var2/val2/varN/valN

然后在PHP中将它们转换为数组或结构。在我的例子中,一切都通过index.php工作,所以这是一个常量

有没有办法做到这一点?我在谷歌上找不到任何东西,显然我自己也找不到


谢谢大家:-)

这几乎是从我的主apache配置中的
指令一字不差地复制过来的。我一直无法这样做,但也应该在
.htaccess
中工作(可能没有
部分)


重新启动发动机
重写规则^(.*)$index.php?路径=$1[QSA]
URL
http://www.any.com/foo/bar/baz/spam/eggs
应该变成
http://www.any.com/index.php?path=/foo/bar/baz/spam/eggs

试试这个规则:

RewriteEngine on
RewriteRule !^index\.php$ index.php?path=%{REQUEST_URI} [L]
这将把除
index.php
之外的任何请求重写为
index.php

如果要排除现有文件和目录,请将这些
RewriteCond
指令添加到规则中:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !^index\.php$ index.php?path=%{REQUEST_URI} [L]
对于前一种格式,这里有一条规则,除了参数的形式为
var[]

RewriteRule ^([^/]+)/([^/]+)(.*)$ /$3?$1[]=$2 [N,QSA]

秋葵,我真的很喜欢这个解决方案,它非常有效:

重写规则^([^/]+)/([^/]+)(.*)$/$3?$1[]=$2[N,QSA]

我觉得我需要像这样坚持下去!(js | css)来排除这些文件夹,但我不知道在哪里,我尝试了几个地方都没有用。你有什么好办法吗?再次感谢你的杀手级解决方案

编辑:我找到了,或者说是找到了! 我把这个放在重写规则之前:

重写cond%{REQUEST_FILENAME}^(.+).css$

重写cond%{REQUEST_FILENAME}^(.+).js$

最后,它看起来是这样的,并且工作得非常完美:

重写cond%{REQUEST_FILENAME}^(.+).css$

重写cond%{REQUEST_FILENAME}^(.+).js$

重写规则^([^/]+)/([^/]+)(.*)$/$3?$1[]=$2[N,QSA]

我最喜欢的解决方案是,我可以传递url数组,因此:

www.any.com/var1/val1/var1/val2/

实际创造

$var1=数组(“val1”、“val2”)

RewriteRule ^([^/]+)/([^/]+)(.*)$ /$3?$1[]=$2 [N,QSA]