私は複数のウェブサイトをホストする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>
....
VirtualHostをカスタマイズしましたか?もしそうなら、コードを投稿してください。 –