Я пытаюсь создать динамическую среду разработки с виртуальным хостом.
Теперь у меня есть:
<VirtualHost *:80>
UseCanonicalName Off
VirtualDocumentRoot "C:\xampp\htdocs\%1\public"# available aliases to use
ServerAlias *.dev
</VirtualHost>
И это работает для маршрута по умолчанию Laravel:
Route::get('/', function () {
return view('home.index');
});
Но любой другой маршрут даст мне ошибку 500 во многих внутренних перенаправлениях.
Я использую Laravel 5.2 без каких-либо изменений, за исключением маршрутов. Php и некоторых изменений по умолчанию.
Когда я присваиваю домен как VirtualHost, все работает нормально:
<VirtualHost *:80>
ServerName example.dev
VirtualDocumentRoot none
DocumentRoot "C:\xampp\htdocs\example\public"</VirtualHost>
Как я могу исправить эту проблему, чтобы я мог использовать динамические доменные имена, чтобы мне не пришлось добавлять все домены вручную.
Заранее спасибо,
Стефан Франсен
редактировать
Когда я использую это:
http://example.dev/index.php/test
Страница загружается правильно, но это не то, что я хочу.
Итак, как мне удалить index.php из URL? Я проверил, и все модули загружены правильно, это мой .htaccess:
<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]
# # Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
# # Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
редактировать
Узнал, что когда я изменился RewriteRule ^ index.php [L]
в RewriteRule ^(.*)$ /index.php/$1 [L]
Но я до сих пор не понимаю, почему он работает с vhost, добавленным вручную, а не с динамически сгенерированным vhost, у кого-нибудь есть объяснение этому?
Я думаю, что вы переписать модуль (mod_rewrite) отключен. Проверьте это в apache.conf
Может быть, раздел Pretty URLs может помочь вам.
https://laravel.com/docs/5.1
Других решений пока нет …