子文件夹中的mod_rewrite

时间:2012-03-26 10:51:18

标签: php .htaccess mod-rewrite

只是想知道是否可以在单个(或多个)子文件夹上使用mod_rewrite。 在一个文件夹中有一个服务,我想像休息服务语法一样调用。

$url = 'http://mysite/subfolder/parem1/parem2/parem3/';
$_SERVER['REQUEST_URI']

$tokens = explode('/', $url);
echo $tokens[sizeof($tokens)-2];

所以问题是我是否可以通过使用forexample modrewrite(仅通过在此文件夹中放置.htaccess规则来捕获子文件夹中index.php中的所有不同段?)或者它是如何实现的?做完了?

问候

2 个答案:

答案 0 :(得分:2)

如果要为子文件夹定义重写规则,请查看RewriteBase

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /yoursubfolder
    RewriteRule ^(.*)$ index.php?$param=$1
</IfModule>

答案 1 :(得分:1)

有可能。在你的.htaccess中,你可以放一些这样的东西:

<IfModule mod_rewrite.c>
  Options +FollowSymlinks
  RewriteEngine On

    RewriteRule ^([^/\.]+)/?$                               index.php?p1=$1
    RewriteRule ^([^/\.]+)/([^/\.]+)/?$                     index.php?p1=$1&p2=$2
    RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/?$           index.php?p1=$1&p2=$2&p3=$3
    RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ index.php?p1=$1&p2=$2&p3=$3&p4=$4

</IfModule>

在您的情况下,您可以将带有index.php的.htaccess文件放在服务所在的文件夹中。

通过这种方式,您可以获取(并清理)$_GET数组,而不是获取整个网址。