Ошибка субдомена 500 Laravel

Мы работаем на совместном хостинге и запуске laravel на основном домене, который является example.com , все работает отлично.

Мы обработали test.example.com test.example.com, test.example.com диспетчер поддоменов в cPanel и указав, что это корень документа в /public_html/test

Как только мы посетим test.example.com мы получим 500 Internal Server Error

Исходный laravel .htaccess

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

Мы изменились.

  RewriteRule ^ index.php [L] 

в

  RewriteRule ^ /index.php [L] 

Теперь, если мы посетим test.example.com он перенаправляется на tests.example.com/test и все работает нормально.

Но мы не уверены, почему он перенаправляет браузер на tests.example.com/test ?

обновленный

После дальнейших исследований мы обнаружили, что.

Если мы удалим эту строку.

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

Тогда как maindomain, так и субдомен работают отлично. Но нормально ли удалять эту строку.

Короче говоря, мы хотим запустить laravel в основном домене и что-то еще на субдомене.

Вы можете добавить ограничение на test субдомен.
Кроме того, вам нужно избегать удаления конечной косой черты для папок (иначе: loop -> 500 error).

Тогда ваш htaccess станет

 <IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews </IfModule> RewriteEngine On # Don't touch anything when coming from test subdomain RewriteCond %{HTTP_HOST} ^test\. [NC] RewriteRule ^ - [L] # Redirect Trailing Slashes... RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.+)/$ /$1 [L,R=301] # Handle Front Controller... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ /index.php [L] </IfModule>