У меня есть следующий фиктивный локальный веб-сайт (настроенный через два разных виртуальных хоста):
[vhost 1]
https://www.test -laravel.com
DocumentRoot "${INSTALL_DIR}/www/[WEBSITE-DIR]"
[vhost 2]
https://www.test -laravel-direct.com
DocumentRoot "${INSTALL_DIR}/www/[WEBSITE-DIR]/laravel/public"
Вы можете проверить это здесь через GitHub
:
https://github.com/napolev/test-laravel.com
Внутри его каталога я сбросил 4 файла:
index.php
page_01.php
page_02.php
page_03.php
с тем же содержимым (просто для обозначения текущего файла):
<?
echo 'You are on: '.$_SERVER['PHP_SELF'];
?>
Также внутри его каталога я установил Laravel
с:
$ laravel new api
В файле: laravel\routes\api.php
Я настроил следующий маршрут:
Route::post('/echo-post', function (Request $request) {
return request()->all();
});
Если я использую [vhost 2]
с Postman
, используя следующий POST
запрос URL:
(в этом случае домен указывает на подкаталог: /laravel/public
вместо корневого каталога)
https://www.test-laravel-direct.com/api/echo-post?param1=value1¶m2=value2¶m3=value3
Я получаю ожидаемый ответ:
{
"param1": "value1",
"param2": "value2",
"param3": "value3"
}
Затем я хочу использовать [vhost 1]
с Postman
, используя следующий POST
запрос URL:
(в этом случае домен указывает на корневой каталог, а не на подкаталог: /laravel/public
)
https://www.test-laravel.com/api/echo-post?param1=value1¶m2=value2¶m3=value3
Для этого я настроил корневой .htaccess
файл как:
RewriteEngine On
RewriteBase /laravel/
RewriteRule ^api/(.*)$ /api/$1 [L]
Но при выполнении запроса с Postman
я получаю следующий вывод:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html>
<head>
<title>500 Internal Server Error</title>
</head>
<body>
<h1>Internal Server Error</h1>
<p>The server encountered an internal error or
misconfiguration and was unable to complete
your request.</p>
<p>Please contact the server administrator at
admin@example.com to inform them of the time this error occurred,
and the actions you performed just before this error.</p>
<p>More information about this error may be available
in the server error log.</p>
</body>
</html>
В журнале ошибок Apache
я получаю следующее:
AH00124: Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
Есть ли у вас какие-либо идеи о том, как я могу использовать [vhost 1]
со следующим POST
запросом URL?
https://www.test -laravel.com / апи / эхо-сообщение? Param1 = value1 & param2 = значение2 & param3 = value3
Спасибо!