Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
重定向到子目录,并始终在Slim php中找不到404_Php_.htaccess_Mod Rewrite_Redirect_Slim - Fatal编程技术网

重定向到子目录,并始终在Slim php中找不到404

重定向到子目录,并始终在Slim php中找不到404,php,.htaccess,mod-rewrite,redirect,slim,Php,.htaccess,Mod Rewrite,Redirect,Slim,我想制作两个slim应用程序,一个用于api调用,另一个用于网站用户。 我将我的主php文件放入'src'目录,结构如下: / ---.htaccess ---/src(here are files) -----.htaccess -----index.php(Slim) -----/Controllers -----/Views -----/Models -----/api -------.htaccess -------index.php(Slim)

我想制作两个slim应用程序,一个用于api调用,另一个用于网站用户。
我将我的主php文件放入'src'目录,结构如下:

/  
---.htaccess  
---/src(here are files)  
-----.htaccess  
-----index.php(Slim)  
-----/Controllers  
-----/Views  
-----/Models  
-----/api  
-------.htaccess  
-------index.php(Slim)  
---/public  
-----/js  
-----/css  
-----/fonts
我想从以下内容创建我的url:
http://localhost/project/src/api/foo


http://locahost/project/api/foo

我不知道如何编写第一个
.htaccess
(root) 我尝试重定向到subdir,如下所示:

RewriteEngine On  
RewriteCond %{REQUEST_URI} !^src/  
RewriteCond %{REQUEST_FILENAME} !-f  
RewriteRule ^ src/ [QSA,L]    
但它总是返回Slim未找到的404。我想它确实重定向到了subdir,但是slim路由器不会得到正确的url,对吗

还有一些是这样的:(我只是从SlimFramework复制文档)


任何想法都会对我有很大帮助!谢谢大家!

在您的
/project/.htaccess
中尝试此规则:

RewriteEngine On
RewriteBase /project/

RewriteCond  !/src/ [NC]
RewriteRule ^(.*)$ src/$1 [L]

确保这是您的第一条规则。

仍然不起作用…url将像这样重定向
src/index.php/project/hello/
,我认为slim只接受这样的
src/index.php/hello/
查看更新的代码确保它位于
/project/.htaccess
而不是
DocumentRoot
是,我将其放入/project/并在浏览器中键入,slim仍然显示404未找到。尝试使用
R
标记进行测试:
RewriteRule^(.*)$src/$1[L,R]
它仍然不工作。我放弃!最后我使用了
虚拟主机
RewriteEngine On
RewriteBase /project/

RewriteCond  !/src/ [NC]
RewriteRule ^(.*)$ src/$1 [L]