Доступ к WordPress блог в Symfony - PullRequest
0 голосов
/ 04 июня 2018

Я установил блог WordPress внутри каталога под названием «блог» в веб-папке Symfony (root).Но я не могу получить к нему доступ из браузера и получаю следующую ошибку:

"Forbidden"
"You don't have permission to access /blog/ on this server."

Мой сайт: www.example.com (/ web / <- symfony) </p>

Мой блог: www.example.com / blog / (/ web / blog / <- каталог wordpress) </p>

В файле routing.yml нет маршрута, указывающего на /blog.

Как настроитьмой блог WordPress внутри веб-папки и доступ к нему в браузере?

PS:

app.php

use Symfony\Component\HttpFoundation\Request;

require __DIR__.'/../app/autoload.php';
include_once __DIR__.'/../app/bootstrap.php.cache';

$kernel = new AppKernel('prod', false);
$kernel->loadClassCache();
//$kernel = new AppCache($kernel);

//Request::enableHttpMethodParameterOverride();
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);

app_dev.php

use Symfony\Component\Debug\Debug;
use Symfony\Component\HttpFoundation\Request;

//umask(0000);

/*if (isset($_SERVER['HTTP_CLIENT_IP'])
    || isset($_SERVER['HTTP_X_FORWARDED_FOR'])
    || !(in_array(@$_SERVER['REMOTE_ADDR'], array('127.0.0.1', '::1'), true) || PHP_SAPI === 'cli-server')
) {
    header('HTTP/1.0 403 Forbidden');
    exit('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.');
}*/

require __DIR__.'/../app/autoload.php';
Debug::enable();

$kernel = new AppKernel('dev', true);
$kernel->loadClassCache();
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);

web / .htaccess

DirectoryIndex app.php

#Options FollowSymlinks

<IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
    RewriteRule ^(.*) - [E=BASE:%1]

    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    RewriteCond %{ENV:REDIRECT_STATUS} ^$
    RewriteRule ^app\.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L]

    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule .? - [L]

    RewriteCond %{REQUEST_FILENAME} -d

    RewriteRule .? %{ENV:BASE}/app.php [L]
</IfModule>

web / blog / .htaccess

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

1 Ответ

0 голосов
/ 04 июня 2018

Технически это не зависит от Symfony.

Первый шаг маршрутизации происходит на уровне веб-серверов (apache, nginx, встроенный сервер тестирования Symfony).

Они настроены на отправку каждого запроса к приложению на public/index.php.

Оттуда Symfony берет запрос и определяет, какой контроллер его полностью заполнит.

Если вы сейчас пойдете и скажете приложению проигнорировать запрос, ему нужно будет направить его наподпапка, которая, вероятно, приведет к нежелательному поведению где-то вдоль линии.

Итак, поскольку вы хотите, чтобы подпапка игнорировалась, вы действительно хотите установить это правило до того, как запрос когда-нибудь попадет в Symfony.

Другими словами - вы должны обратить внимание на то, чтобы исключить передачу подпапки на public/index.php на уровне сервера.

Вот ответ из обратного пути, который охватывает это для Apache с использованием .htaccess- Каталог игнорирования Symfony в сети /

...