htaccess重定向到父文件夹index.php如果不存在

时间:2017-07-04 15:28:30

标签: php linux .htaccess

我通过php构建了一个web api。我遇到的一件事就是设置htaccess文件,以便在不存在某些内容时重定向到父文件夹的index.php。我的文件夹结构如下所示:

/SkedApi/
    index.php
    /Users/
        index.php

这是我到目前为止所做的,但它不起作用:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [NC,L]

目前,如果它不存在,则会将其重定向回/SkedApi/index.php。但在/Users/3的情况下,我需要将其重定向到/Users/index.php/Users/正常工作,并将其定向到/Users/index.php

1 个答案:

答案 0 :(得分:-1)

你可以使用绝对路径:

RewriteRule ^Users/(.*)$ /Users/index.php [NC,L] 

用户和

RewriteRule ^(.*)$ /index.php [NC,L] 

其余的。

注释:如果要重用它,则需要regexp中的括号。像这样:RewriteRule ^User/(.*)$ /User/index.php?uid=$1 [NC,L]除非你可以选择简单的^ User /

编辑:如果你想实现某种控制器逻辑,可以使用regexp捕获它们。

考虑到你的控制器是一个单词:

RewriteRule ^([^/]*)/(.*)$ /Users/index.php?mycontroler=$1&mydata=$2 [NC,L] 

当然,如果您的框架直接从查询字符串中获取此信息,则可以省略$ 1 $。

RewriteRule ^([^/]*) /Users/index.php [NC,L]