私はlaravel共有ホスティングのプロジェクトを持っていました、そして私の構造アプリは
/home/username
`->fontEndApps ( my laravel apps )`
`->backendApps ( my laravel apps )`
`->public_html`
パブリックhtmlにindex.php、htaccess、adminフォルダーを配置し、adminフォルダーにindex.phpとhtaccessがあります
バックエンドは正常に動作していますが、www.domain.com/segment1またはwww.domain.com/segment1/segment2にアクセスしようとすると、フロントエンドに常に500内部サーバーエラーが発生します。これがフロントエンドとバックエンドのhtaccessファイルです
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options +FollowSymLinks
</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>
この問題を理解するのを手伝ってください
あなたの問題は。htaccessファイルにあります。 goDaddyではRewriteBase
を設定しないため、。htaccessファイルで指定する必要があります。完全なコードは次のようになります。これは私のlaravelポートフォリオ サイト
<Limit GET POST PUT DELETE>
#For REST support
Allow from all
</Limit>
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
RewriteBase / # <------------ This one you missed
#Just to redirect to www.site.com when only site.com comes
RewriteCond %{HTTP_Host} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_Host} [R=301,L]
#end of codes
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
数時間検索した後、これは問題を解決しました:
/ public_html内のindex.phpに644の権限があることを確認してください(鉱山は664で、これが内部サーバーエラーの原因でした)。
.htaccessでこの行をコメント化する必要があります。
#<IfModule mod_negotiation.c>
# Options -MultiViews
#</IfModule>
Vendorフォルダーがサーバーにアップロードされていることを確認してください500エラーが発生する。