我通过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
。
答案 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]