重写无限数量的子目录

时间:2014-09-16 03:24:21

标签: regex .htaccess mod-rewrite

在我的.htaccess文件中,我可以将具有可能无限数量的子目录的URL重写为新的吗?

第一个"目录"他们的要求应该始终如一。

例如

/FOOBAR/this/is/my/url

/myscript.php?params=this,is,my,url

/FOOBAR/these/are/some/more/ones/cant/you/see

/myscript.php?params=these,are,some,more,ones,cant,you,see

我是否必须写出一条庞大的线来捕获我认为会被请求的目录,或者有没有办法捕获所有目录而不管数字?

我只知道.htaccess的基础知识,比如重写一个目录,我知道一点regex,但还不足以自己做。我甚至不知道从哪里开始。

1 个答案:

答案 0 :(得分:2)

将整个路径重写为index.php文件的参数。然后,在php文件中,使用str_replace/更改为,

.htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?params=$1 [L]

index.php

$params = str_replace( '/', ',', $_GET['params'] );