存在Htaccess反向查找目录树脚本

是否有可能让htaccess运行目录,直到find一个,并保持正常的get完好? 例如:

/foo/bar/foobar/test/something?foo=bar&bar=foo 

脚本在哪里是/foo/bar/foobar.php和foobar.php有:

 array(2) [foo] = bar, [bar] = foo 

和testing/东西是通过某处例如在其他名称的path/ PARAMS。

我得到这个,但它不处理得很好:

 RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -l RewriteRule ^ - [L] RewriteCond %{DOCUMENT_ROOT}/$1/$2.php !-f RewriteCond %{QUERY_STRING} ^(?:param=)?(.*)$ RewriteRule ^(.*?)/([^/]+)/?$ $1/?param=$2/%1 [L] RewriteCond %{DOCUMENT_ROOT}/$1.php -f RewriteRule ^(.*?)/?$ $1.php [L] 

提前致谢

编辑

目前我遇到以下问题:

我有一个名为/ page.php的页面,但是这个page.php检查某些“选项”,比如/ page / homepage。 这工作,但是当我添加/页/主页?foo =酒吧目前的htaccess使“主页/ foo =酒吧”,而不是一个单独的get。 我爆炸的参数得到/并给我以下几点:

 array (size=3) 0 => string 'page' (length=4) 1 => string 'homepage' (length=8) 2 => string 'foo=bar' (length=7) 

foo = bar不应该在那里,应该是$ _GET ['foo']或者任何名字,如果更多,更多的命名后面。 例如:

 array (size=3) params => string 'page/homepage' (length=13) foo => string 'bar' (length=3) bar => string 'foo' (length=3) 

当前的htaccess将第一个获取作为“参数”的一部分。

EDIT2

我想达到以下内容:

使用htaccess转到页面/ page.php它应该看起来像/ page / homepage?background = someColor

在homepage.php脚本中,我想获取“主页”作为页面variables,并获得背景应该工作。

试试这个代码:

 RewriteEngine on RewriteBase / # If the request is for a valid file RewriteCond %{REQUEST_FILENAME} -f [OR] # If the request is for a valid link RewriteCond %{REQUEST_FILENAME} -l # don't do anything RewriteRule ^ - [L] # if current ${REQUEST_URI}.php is not a file then # forward to the parent directory of current REQUEST_URI RewriteCond %{DOCUMENT_ROOT}/$1/$2.php !-f RewriteRule ^(.*?)/([^/]+)/?$ $1/?param[]=$2 [L,QSA] # if current ${REQUEST_URI}.php is a valid file then # load it be removing optional trailing slash RewriteCond %{DOCUMENT_ROOT}/$1.php -f RewriteRule ^(.*?)/?$ $1.php [L]