从Laravel 5.4 - CentOS 6

时间:2017-06-09 12:32:11

标签: linux .htaccess laravel-5 laravel-5.4 centos6

我在互联网上尝试了几乎所有关于这个问题的解决方案。

我已将Laravel项目从Windows 10迁移到Linux CentOS 6.我尝试以两种不同的方式更改项目结构,但两者都面临问题。

我正在尝试从[www.example.com]/index.php/[routes url]中删除index.php。由于此项目正在大学服务器中安装,因此我无权访问root或sudo命令。但我可以请求IT管理员处理需要root访问权限的任务。

我目前在/home/cs4/username (folder)。我目前的项目结构是:

blog (folder)
 - contains all the Laravel framework files other than public folder

 public_html (folder)
 - contains all the files of laravel public folder plus 
 - .htaccess file created

.htaccces文件包含以下代码:

 # Redirect Trailing Slashes...
 #RewriteRule ^(.*)/$ $1 [L,R=301]

 RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
 RewriteCond %{REQUEST_URI} !/system/.* [NC]
 RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,NE,L]

 # Handle Front Controller...
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond %{REQUEST_FILENAME} !-f
 #RewriteRule ^ index.php [L]
 RewriteRule ^(.*)$ /index.php/$1 [L]

我已经替换了在public_html文件夹中的2行index.php文件

来自这些

require __DIR__.'/../bootstrap/autoload.php';
 $app = require_once __DIR__.'/../bootstrap/app.php';

 require __DIR__.'/../blog/bootstrap/autoload.php';
 $app = require_once __DIR__.'/../blog/bootstrap/app.php';

问题是http://example.ac.uk/~username/加载项目但是对于所有其他网址,我必须添加index.php,例如:http://www.example.ac.uk/~username/index.php/login而不是http://www.example.ac.uk/~username/login,类似于所有其他网址。

我还尝试将整个项目放在public_html文件夹中,目录结构为:

public_html
 -entire project files and folders
 -public folder

然后是2个问题:

所有服务器文件如:.env和其他代码都会暴露,从而导致安全风险

我被迫在网址中使用public / index.php。

例如:http://www.example.ac.uk/~username/public/index.php/login代替http://www.example.ac.uk/~username/login,类似于所有其他网址。

0 个答案:

没有答案