我是Laravel的新手,我正在努力做下一件事:
我有一台运行Apache和PHP的Centos 7,我运行的是不同的网络应用程序。
我在/var/www/html
下的所有应用都在文件夹下,index.php
将它们全部链接起来。现在我安装了作曲家Laravel并在/var/www/html/play/play1
中添加了一个新的Laravel项目。
问题在于,当我尝试访问https://example.com/play/play1
时,我应该让Laravel索引页面(public/index.php
下的那个)正确吗?
相反,我得到了一个包含所有Laravel项目文件的目录。
如果我访问https://example.com/play/play1/public
,我可以看到索引页面。
我已经对其进行了搜索,如果AllowOverwrite
处于启用状态,我会检查mod_rewrite
是否全部存在。在公共文件夹中有一个.htaccess
文件。
任何处理这样问题的人能帮助我吗?
答案 0 :(得分:0)
在项目文件夹的根目录(您可以看到app / resources文件夹等)中创建.htaccess文件并粘贴以下内容:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^public
RewriteRule ^(.*)$ public/$1 [L]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
答案 1 :(得分:0)
Laravel的根目录不应该是公开访问的目录 - 您必须指向onSubmit() {
this.authService.getUsers().subscribe(data => {console.log(JSON.stringify(data)});
}
目录(public/
和index.php
所在的目录)。
因此,在您的服务器中,配置.htaccess
应指向http://example.com/play/play1