繁体   English   中英

PHP框架和仅在public_html内与ftp共享的托管

[英]PHP framework and shared hosting with ftp inside only the public_html

最近,我试图学习php框架,因为我想在我的项目中实现它们,实现路由和安全的会话/表单处理,并且我厌倦了将wordpress用于客户的工作,所以我发现了Slim,我做了一个例子您可以在项目主页上找到的应用程序。

现在,由于种种原因,我知道很多客户最终只会选择一个共享的托管解决方案,而这只是一个展示网站,因此我对共享的托管配置和.htaccess文件进行了一些研究。 我用altervista进行了测试,看它是否有效(这是一个免费的托管服务,是共享的),唯一的问题是我遵循的每个教程都假定,通过ftp连接时,您可以看到doc根目录(public_html,htdocs等)上),但仍要上传出去,在这种情况下,我只能看到公用文件夹的内部。

这让我有些困惑,但是无论如何我还是尝试了,我上传了所有瘦文件(包括公共应用程序文件夹和所有必要的背景文件),进行了.htaccess并上传了,这就是它的内容:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^minimaleffort.altervista.org$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.minimaleffort.altervista.org$
RewriteCond %{REQUEST_URI} !public/
RewriteRule (.*) /public/$1 [L]

我转到我的网站的索引,苗条框架的主屏幕按预期显示(由于我实施了Bootstrap CSS,因此进行了一些编辑)

在此处输入图片说明

一切正常,对不对? 否,错了,如果我输入路由(例如默认的应用程序路由)

/{name}

它返回一个404错误页面,尽管它应该在屏幕上打印出我在URL中输入的任何名称,但我丢失了什么吗? 如果您想直接检查网站,请点击以下网址

如果您查看Slim 3官方示例应用程序 ,则其.htaccess文件的内容如下:

RewriteRule ^ index.php [QSA,L]

我绝不是mod_rewrite专家,但我认为您没有将查询字符串传递给索引文件。 这就是为什么首页有效,而其他网页无效的原因。

我认为您的.htaccess文件应如下所示:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^minimaleffort.altervista.org$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.minimaleffort.altervista.org$
RewriteCond %{REQUEST_URI} !public/
RewriteRule ^(.*)$ /public/index.php [QSA,L]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM