【问题标题】:redirect to subdirectory and always get 404 not found in Slim php重定向到子目录并总是在 Slim php 中找不到 404
【发布时间】:2014-01-17 16:01:34
【问题描述】:

我想制作两个超薄应用,一个用于 api 调用,另一个用于网站用户。
我把我的主php文件放到'src'目录下,结构如下:

/  
---.htaccess  
---/src(here are files)  
-----.htaccess  
-----index.php(Slim)  
-----/Controllers  
-----/Views  
-----/Models  
-----/api  
-------.htaccess  
-------index.php(Slim)  
---/public  
-----/js  
-----/css  
-----/fonts

我想从这里制作我的网址:
http://localhost/project/src/api/foo

http://locahost/project/api/foo

不知道怎么写第一个.htaccess(root) 我尝试像这样重定向到子目录:

RewriteEngine On  
RewriteCond %{REQUEST_URI} !^src/  
RewriteCond %{REQUEST_FILENAME} !-f  
RewriteRule ^ src/ [QSA,L]    

但它总是返回 404 Not found by Slim。我以为它确实重定向到了 subdir,但超薄路由器不会得到正确的 url,对吗?

其他的看起来是这样的:(我只是从 SlimFramework 复制文档)

RewriteEngine On  
RewriteCond %{REQUEST_FILENAME} !-f  
RewriteRule ^ index.php [QSA] 

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

【问题讨论】:

    标签: php .htaccess mod-rewrite redirect slim


    【解决方案1】:

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

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

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

    【讨论】:

    • 仍然无法正常工作...网址将像这样src/index.php/project/hello/ 重定向,我认为苗条只接受这样src/index.php/hello/
    • 查看更新的代码,确保它在/project/.htaccess而不是DocumentRoot
    • 是的,我把它放到 /project/ 并在浏览器中输入localhost/project/hello,slim 仍然显示 404 not found。
    • 尝试使用R 标志进行测试:RewriteRule ^(.*)$ src/$1 [L,R]
    • 它仍然无法正常工作。我放弃!最后我改用virtual host
    猜你喜欢
    • 2011-11-15
    • 1970-01-01
    • 1970-01-01
    • 2015-07-08
    • 2020-11-04
    • 2021-03-14
    • 1970-01-01
    • 1970-01-01
    • 2021-06-29
    相关资源
    最近更新 更多