2017-07-27 2 views
0

私は複数のウェブサイトをホストするWHMを持っています。各ウェブサイトは/home/<hostname>/public_htmlでホストされています。私のウェブサイトの1つがLaravel 5.4を使用しています。どうやらこのウェブサイトは正しく機能していないようです。私のWHMホストの1つで.htaccessファイルが動作しません

私はすべてのファイルを直接public_htmlにプッシュし、このポストLaravel 5 - Remove public from URLに続いてアセットファイルをpublic/にルーティングしました。しかし、アセットファイルは、ウェブサイトのpublic/フォルダにはルーティングされません。

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

    RewriteEngine On 

    # Redirect Trailing Slashes If Not A Folder... 
    #RewriteCond %{REQUEST_FILENAME} !-d 
    #RewriteRule ^(.*)/$ /$1 [L,R=301] 

    RewriteCond %{REQUEST_URI} !(\.svg|\woff|\.css|\.js|\.png|\.jpg|\.gif|robots\.txt)$ [NC] 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule^index.php [L] 

    # Handle Front Controller... 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_URI} !^/public/ 
RewriteRule ^(css|js|img|fonts)/(.*)$ public/$1/$2 [L,NC] 


    # Handle Authorization Header 
    RewriteCond %{HTTP:Authorization} . 
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 
</IfModule> 

それは私のテストサーバー上で動作します:

これは.htaccessファイルです。私はなぜそれが私のプロダクションサーバーで動作しないのかわかりません。私はウェブサイトに行くとき。 apacge error_logファイルには、このエラーが表示されます。

File does not exist: /usr/local/apache/htdocs/home 

複数回。

.htaccessは、ファイルをめちゃくちゃにしてしまい、ウェブサイトに500のエラーが表示されるため、Apacheサーバーによって解析されます。

これは仮想ホストの設定エラーまたは何かが原因であるかどうかわかりません。これは仮想ホストの設定です:

<VirtualHost 123.164.132.142:80> 
    ServerName marca.com 
    ServerAlias mail.marca.com www.marca.com 
    DocumentRoot /home/marca/public_html 
    ServerAdmin [email protected] 
    UseCanonicalName Off 
    CustomLog /usr/local/apache/domlogs/marca combined 
    CustomLog /usr/local/apache/domlogs/marca.com-bytes_log "%{%s}t %I .\n%{%s}t %O ." 
    ## User marca # Needed for Cpanel::ApacheConf 
    UserDir enabled 
    <IfModule mod_suphp.c> 
     suPHP_UserGroup marca marca 
    </IfModule> 
    <IfModule !mod_disable_suexec.c> 
     <IfModule !mod_ruid2.c> 
      SuexecUserGroup marca marca 
     </IfModule> 
    </IfModule> 
    <IfModule mod_ruid2.c> 
     RMode config 
     RUidGid marca marca 
    </IfModule> 
    <IfModule itk.c> 
     # For more information on MPM ITK, please read: 
     # http://mpm-itk.sesse.net/ 
     AssignUserID marca marca 
    </IfModule> 

    ScriptAlias /cgi-bin/ /home/marca/public_html/cgi-bin/ 


    # To customize this VirtualHost use an include file at the following location 
    # Include "/usr/local/apache/conf/userdata/std/2_2/marca/marca.com/*.conf" 
</VirtualHost> 

サーバはApache 2.2を使用しています。

編集: パブリックフォルダに直接アクセスするとき。インデックスルートが正しく表示されます。しかし、私が/ loginのような他のルートに行くと、ウェブサイトは404エラーを表示します。 .envは世界中からアクセス可能です。

私のサーバは、複数のWebサイトを複数のPHPバージョンでホストしていると付け加えておくべきです。このLaravelのウェブサイトでは、独自の設定ファイルを使用してPHP 5.6.31を使用しています。

/usr/local/apache/conf/php56.conf 
<IfModule mod_suphp.c> 
    <Directory ~ "/home/marcabymortise/public_html"> 
    Options +FollowSymLinks 
    AllowOverride All 
    AddType application/x-httpd-php56 .php 
    suPHP_AddHandler application/x-httpd-php56 
    </Directory> 
</IfModule> 

仮想ホストファイルをカスタマイズしていません。

これは/usr/local/apache/conf/httpd.confファイルです。

# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 
# Direct modifications to the Apache configuration file may be lost upon subsequent regeneration of the # 
# configuration file. To have modifications retained, all modifications must be checked into the    # 
# configuration system by running:                   # 
# /usr/local/cpanel/bin/apache_conf_distiller --update 
..... 
Include "/usr/local/apache/conf/php.conf" 
.... 
<Directory "/"> 
    Options ExecCGI IncludesNOEXEC Indexes SymLinksIfOwnerMatch 
    AllowOverride All 
</Directory> 

<Directory "/usr/local/apache/htdocs"> 
    Options Includes Indexes FollowSymLinks 
    AllowOverride All 
    Order allow,deny 
    Allow from all 

</Directory> 

<Files ~ "^error_log$"> 
    Order allow,deny 
    Deny from all 

    Satisfy All 
</Files> 

<IfModule log_config_module> 
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined 
    LogFormat "%h %l %u %t \"%r\" %>s %b" common 

    CustomLog "logs/access_log" common 

    <IfModule logio_module> 
     LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio 

    </IfModule> 

</IfModule> 

<IfModule alias_module> 
    ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/" 

</IfModule> 

<Directory "/usr/local/apache/cgi-bin"> 
    AllowOverride All 
    Options None 
    Order allow,deny 
    Allow from all 

</Directory> 

<IfModule mod_log_config.c> 
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined 
    LogFormat "%h %l %u %t \"%r\" %>s %b" common 
    LogFormat "%{Referer}i -> %U" referer 
    LogFormat "%{User-agent}i" agent 

    CustomLog logs/access_log common 

</IfModule> 

.... 
+0

VirtualHostをカスタマイズしましたか?もしそうなら、コードを投稿してください。 –

答えて

0

私がApache 2.4にアップグレードした後。今はうまくいく。

関連する問題