Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 正确删除/公开和连接文件_Laravel_Laravel 5_Vps_Host - Fatal编程技术网

Laravel 正确删除/公开和连接文件

Laravel 正确删除/公开和连接文件,laravel,laravel-5,vps,host,Laravel,Laravel 5,Vps,Host,我见过很多类似的话题,我尝试了所有的话题,以前都很有效,每次都不一样,但现在什么都没有 所以我想从我的URL中删除/public,它适用于laravel-public_html,但不适用于构建版本 我正在使用VPS(CentOS 7和CWP 7) 我的结构是这样的: /home/admin/ -laravel -public_html (public folder for laravel) -laravel_build -build (public folder for laravel_buil

我见过很多类似的话题,我尝试了所有的话题,以前都很有效,每次都不一样,但现在什么都没有

所以我想从我的URL中删除/public,它适用于laravel-public_html,但不适用于构建版本

我正在使用VPS(CentOS 7和CWP 7)

我的结构是这样的:

/home/admin/
-laravel
-public_html (public folder for laravel)
-laravel_build
-build (public folder for laravel_build)
有了这些,我就有了build.mypage.com和www.mypage.com

httpd.conf

...
ServerRoot "/usr/local/apache"
...
DocumentRoot "/home/admin/public_html"
<Directory "/home/admin/public_html">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>
index.php(构建)

我应该在.htaccess中添加一些内容吗?如果是,我需要将该.htaccess放在哪里


编辑:我已经在laravel routes(mod _rewrite)的公共文件夹中拥有.htaccess

假设您使用的是MAMP或XAMP之类的东西,如果可能,请不要在httpd.comf中添加任何内容,相反,您可以做一些事情 如下面的httpd-vhosts.conf中所示

您可能需要在您的环境中查找一个目录来放置虚拟主机文件(有时您必须在httpd.conf中取消对该路径的注释)

httpd-vhosts.conf中的条目示例:

<VirtualHost *:80>
    ServerAdmin yourEmail@domain.com
    DocumentRoot "/home/admin/laravel/public_html"
    ServerName MySite1.com
    ServerAlias MySite1.com
    ErrorLog "logs/MySite1_com-error.log"
    CustomLog "logs/MySite1_com_access.log" common
    php_value error_log "logs/php_error.log"
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin yourEmail@domain.com
    DocumentRoot "/home/admin/build"
    ServerName subdomain.MySite1.com
    ServerAlias subdomain.MySite1.com
    ErrorLog "logs/subdoamain-MySite1-error.log"
    CustomLog "logs/subdoamain-MySite1-error.log" common
    php_value error_log "logs/php_error.log"
</VirtualHost>

服务器管理员yourEmail@domain.com
DocumentRoot“/home/admin/laravel/public\u html”
ServerName MySite1.com
ServerAlias MySite1.com
ErrorLog“logs/MySite1_com-error.log”
CustomLog“logs/MySite1_com_access.log”通用
php_值错误_log“logs/php_error.log”
服务器管理员yourEmail@domain.com
DocumentRoot“/主页/管理员/构建”
ServerName subdomain.MySite1.com
ServerAlias subdomain.MySite1.com
ErrorLog“logs/subdoaman-MySite1-error.log”
CustomLog“logs/subdoaman-MySite1-error.log”通用
php_值错误_log“logs/php_error.log”

为这两个应用程序添加两个条目。

假设您使用的是MAMP或XAMP之类的东西,如果可能,请不要在httpd.comf中添加任何内容,您可以做一些事情 如下面的httpd-vhosts.conf中所示

您可能需要在您的环境中查找一个目录来放置虚拟主机文件(有时您必须在httpd.conf中取消对该路径的注释)

httpd-vhosts.conf中的条目示例:

<VirtualHost *:80>
    ServerAdmin yourEmail@domain.com
    DocumentRoot "/home/admin/laravel/public_html"
    ServerName MySite1.com
    ServerAlias MySite1.com
    ErrorLog "logs/MySite1_com-error.log"
    CustomLog "logs/MySite1_com_access.log" common
    php_value error_log "logs/php_error.log"
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin yourEmail@domain.com
    DocumentRoot "/home/admin/build"
    ServerName subdomain.MySite1.com
    ServerAlias subdomain.MySite1.com
    ErrorLog "logs/subdoamain-MySite1-error.log"
    CustomLog "logs/subdoamain-MySite1-error.log" common
    php_value error_log "logs/php_error.log"
</VirtualHost>

服务器管理员yourEmail@domain.com
DocumentRoot“/home/admin/laravel/public\u html”
ServerName MySite1.com
ServerAlias MySite1.com
ErrorLog“logs/MySite1_com-error.log”
CustomLog“logs/MySite1_com_access.log”通用
php_值错误_log“logs/php_error.log”
服务器管理员yourEmail@domain.com
DocumentRoot“/主页/管理员/构建”
ServerName subdomain.MySite1.com
ServerAlias subdomain.MySite1.com
ErrorLog“logs/subdoaman-MySite1-error.log”
CustomLog“logs/subdoaman-MySite1-error.log”通用
php_值错误_log“logs/php_error.log”

为这两个应用程序添加两个条目。

我现在觉得很愚蠢,问题实际上是我没有在谷歌Chrome中硬重置和清除缓存,所以它加载了以前的配置

对于其他有类似问题的人,请尝试以下解决方案:

1.为子域和域创建vhost

2.将.htaccess放入公用文件夹,而不是laravel文件夹

我当前的.htaccess如下(包括public_html和build):


选项-多视图
重新启动发动机
#重定向尾部斜杠。。。
重写规则^(.*)/$/$1[L,R=301]
#处理前控制器。。。
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_FILENAME}-F
重写规则^index.php[L]
选项-多视图
重新启动发动机
#重定向尾部斜杠。。。
重写规则^(.*)/$/$1[L,R=301]

我现在觉得自己太傻了,问题其实是我没有在Google Chrome中硬重置和清除缓存,所以它加载了以前的配置

对于其他有类似问题的人,请尝试以下解决方案:

1.为子域和域创建vhost

2.将.htaccess放入公用文件夹,而不是laravel文件夹

我当前的.htaccess如下(包括public_html和build):


选项-多视图
重新启动发动机
#重定向尾部斜杠。。。
重写规则^(.*)/$/$1[L,R=301]
#处理前控制器。。。
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_FILENAME}-F
重写规则^index.php[L]
选项-多视图
重新启动发动机
#重定向尾部斜杠。。。
重写规则^(.*)/$/$1[L,R=301]

您似乎没有使用框架所需的文件夹结构。在httpd.conf中是否有其他用于生成路径的条目?根据我的理解,基本上你有两个应用程序。。。一个来自public_html,另一个来自build。所以,如果我理解正确,您不需要在apache conf文件中为两个域名输入两个条目吗?@apokryfos,正如我之前所说的,它可以工作,所以我认为这不是问题所在problem@Andy是的,它确实是两个应用程序,我想我确实需要两个条目,但是怎么做呢?@Cgdl如果你只是遵循框架指南,那么你就在浪费时间修复一些不需要修复的东西。你可能有更好的事情要做。只需设置2 vhostsy您似乎没有使用框架所需的文件夹结构。在httpd.conf中是否有其他用于生成路径的条目?根据我的理解,基本上你有两个应用程序。。。一个来自public_html,另一个来自build。所以,如果我理解正确,您不需要在apache conf文件中为两个域名输入两个条目吗?@apokryfos,正如我之前所说的,它可以工作,所以我认为这不是问题所在problem@Andy是的,它确实是两个应用程序,我想我确实需要两个条目,但是怎么做呢?@Cgdl如果你只是遵循框架指南,那么你就在浪费时间修复一些不需要修复的东西。你可能有更好的事情要做。只需设置2 vhostsOkay,我就找到了vhosts.conf,当我在您的httpd.conf中创建子域时,那里似乎已经有两个不同的vhosts(可能是由CWP生成的),vhosts文件应该有一个include(应该有它的路径)。您需要取消注释,并将您的网站配置添加到该文件中,如我所示
<VirtualHost *:80>
    ServerAdmin yourEmail@domain.com
    DocumentRoot "/home/admin/laravel/public_html"
    ServerName MySite1.com
    ServerAlias MySite1.com
    ErrorLog "logs/MySite1_com-error.log"
    CustomLog "logs/MySite1_com_access.log" common
    php_value error_log "logs/php_error.log"
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin yourEmail@domain.com
    DocumentRoot "/home/admin/build"
    ServerName subdomain.MySite1.com
    ServerAlias subdomain.MySite1.com
    ErrorLog "logs/subdoamain-MySite1-error.log"
    CustomLog "logs/subdoamain-MySite1-error.log" common
    php_value error_log "logs/php_error.log"
</VirtualHost>
    <IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>

RewriteEngine On

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

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On

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