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

时间:2017-09-14 20:17:46

标签: laravel laravel-5 vps host

我已经看过很多类似的主题,我尝试了所有这些主题并且之前有效,每次都有不同的主题,但现在没有...

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

我使用VPS(带有CWP 7的CentOS 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(public_html)

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

index.php(build)

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

我应该在.htaccess中添加一些东西,如果是的话,我需要把它放在哪里.htaccess?

编辑:我已经在公共文件夹中有.htaccess用于laravel路由(mod _rewrite)

2 个答案:

答案 0 :(得分:0)

假设您使用的是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>

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

答案 1 :(得分:0)

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

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

1. 为子域和域创建vHost

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

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

    <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>