最近我试图学习PHP框架,因为我想在我的项目中实现它们,实现路线和安全会话/表单处理,我厌倦了使用WordPress的PHP框架和共享托管与ftp里面只有public_html

问题描述:

对于客户的作品,我发现了Slim,并且我制作了可在项目主页中找到的示例应用程序。最近我试图学习PHP框架,因为我想在我的项目中实现它们,实现路线和安全会话/表单处理,我厌倦了使用WordPress的PHP框架和共享托管与ftp里面只有public_html

现在,由于各种原因,我知道很多客户端最终会选择共享主机解决方案,因为它只是一个展示网站,所以我对共享主机配置和.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] 

我去我的网站的索引和纤薄框架的主屏幕出现如预期(有点编辑的原因,我实现引导CSS)

enter image description here

一切正常,对吧?不,不对,如果我键入一个路径(例如默认的应用程序的路由)

/{name} 

它返回一个404错误页面,而应该在屏幕上,我把该URL任何名义进行打印,我失去的东西吗? 如果你想检查站点直接here's the url

+0

TBH,如果你能负担得起,用VPS是很多更好的选择。你可以得到一个5美元/月。 –

+0

@tereško我绝对知道,对于个人项目,我有我的VPS,这是惊人的,但不幸的是我在这里,我住有时客户已经购买了共享托管计划... – K3nzie

如果检查official Slim 3 example application,其.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] 
+0

哦,我认为(如在指南),这个代码只有在htaccess在index.php(.htaccess无知在这里hehe)的同一个文件夹中才有效,那么试试吧,让我们来看看它是怎么回事 – K3nzie

+0

令人惊叹! @OptimusCrime,它的工作!现在路线起作用了,我想这就是解决方法,只是一件小事,我的引导程序css \ js消失了,我想这意味着我必须为这些文件夹编写规则?我试过'RewriteRule ^/css /(.*)/ public/css/$ 1 [QSA,L] RewriteRule ^/js /(.*)/ public/js/$ 1 [QSA,L]',但它没有不工作 – K3nzie

+0

没关系,解决了添加/公开风格的网址,可能是坏习惯,但嘿,我们尽我们所能,再次感谢:) – K3nzie