Как исправить «webroot / not found на этом сервере» для приложения cakephp, доступ к которому осуществляется через https? - PullRequest
1 голос
/ 21 июня 2019

У меня есть приложение cakephp 3.5.x, работающее и подключенное к сети.

Доступ к странице с помощью http : //www.xy.de/intern/users/login все работает отлично.

Доступ к странице с помощью https : //www.xy.de/intern/users/login Я получаю следующую ошибку:

Запрошенный адрес '/webroot / users / login 'не был найден на этом сервере.

Как настроить приложение так, чтобы https работал?

Я много пытался изменить файлы .htaccess.но до сих пор ничего не работало.

Мои текущие файлы .htaccess выглядят так:

.htaccess

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule    ^$    webroot/    [L]
    RewriteRule    (.*) webroot/$1    [L]
</IfModule>

webroot / .htaccess

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

В логах cakephp я получаю следующую ошибку:

Error: [Cake\Routing\Exception\MissingControllerException] Controller class Webroot could not be found.
    Request URL: /webroot/users/login
    Stack Trace:
    #0 vendor/cakephp/cakephp/src/Http/ControllerFactory.php(38): Cake\Http\ControllerFactory->missingController(Object(Cake\Http\ServerRequest))
    #1 vendor/cakephp/cakephp/src/Http/ActionDispatcher.php(90): Cake\Http\ControllerFactory->create(Object(Cake\Http\ServerRequest), Object(Cake\Http\Response))
    #2 vendor/cakephp/cakephp/src/Http/BaseApplication.php(103): Cake\Http\ActionDispatcher->dispatch(Object(Cake\Http\ServerRequest), Object(Cake\Http\Response))
    #3 vendor/cakephp/cakephp/src/Http/Runner.php(65): Cake\Http\BaseApplication->__invoke(Object(Cake\Http\ServerRequest), Object(Cake\Http\Response), Object(Cake\Http\Runner))
    #4 vendor/cakephp/cakephp/src/Routing/Middleware/RoutingMiddleware.php(107): Cake\Http\Runner->__invoke(Object(Cake\Http\ServerRequest), Object(Cake\Http\Response))
    #5 vendor/cakephp/cakephp/src/Http/Runner.php(65): Cake\Routing\Middleware\RoutingMiddleware->__invoke(Object(Cake\Http\ServerRequest), Object(Cake\Http\Response), Object(Cake\Http\Runner))
    #6 vendor/cakephp/cakephp/src/Routing/Middleware/AssetMiddleware.php(88): Cake\Http\Runner->__invoke(Object(Cake\Http\ServerRequest), Object(Cake\Http\Response))
    #7 vendor/cakephp/cakephp/src/Http/Runner.php(65): Cake\Routing\Middleware\AssetMiddleware->__invoke(Object(Cake\Http\ServerRequest), Object(Cake\Http\Response), Object(Cake\Http\Runner))
    #8 vendor/cakephp/cakephp/src/Error/Middleware/ErrorHandlerMiddleware.php(95): Cake\Http\Runner->__invoke(Object(Cake\Http\ServerRequest), Object(Cake\Http\Response))
    #9 vendor/cakephp/cakephp/src/Http/Runner.php(65): Cake\Error\Middleware\ErrorHandlerMiddleware->__invoke(Object(Cake\Http\ServerRequest), Object(Cake\Http\Response), Object(Cake\Http\Runner))
    #10 vendor/cakephp/cakephp/src/Http/Runner.php(51): Cake\Http\Runner->__invoke(Object(Cake\Http\ServerRequest), Object(Cake\Http\Response))
    #11 vendor/cakephp/cakephp/src/Http/Server.php(81): Cake\Http\Runner->run(Object(Cake\Http\MiddlewareQueue), Object(Cake\Http\ServerRequest), Object(Cake\Http\Response))
    #12 webroot/index.php(40): Cake\Http\Server->run()
    #13 {main}

Приложение размещено на strato.de, поэтому я не имею полного контроля над настройками сервера.

Я также связался со службой поддержки Strato.и получил ответ, что моя цель была слишком сложной с технической точки зрения.

Все остальные страницы в том же веб-пространстве, которые не используют cakephp, отлично работают с https.

Сравнение значений $ _SERVER из webroot /index.php показывает мне следующие результаты:

http:

"SCRIPT_URL":"/intern/users/login",
"SCRIPT_URI":"http://www.xy.de/intern/users/login",
"REQUEST_URI":"/intern/users/login",

https:

"SCRIPT_URL":"/intern/webroot/users/login",
"SCRIPT_URI":"https://www.xy.de/intern/webroot/users/login",
"REQUEST_URI":"/intern/webroot/users/login",

тоже самое:

"PHP_SELF":"/intern/webroot/index.php",

Но я не знаю, откуда эти различия и как их устранить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...