php - 在 Symfony 中访问 wordpress 博客

标签 php wordpress symfony symfony-2.8

我在 Symfony 网络文件夹(根)中名为“blog”的目录中设置了一个 wordpress 博客。但是我无法从浏览器访问它,并且出现以下错误:

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

我的网站:www.example.com (/web/<- symfony)

我的博客:www.example.com/blog/(/web/blog/<- wordpress 目录)

routing.yml中没有指向/blog的路由。

如何在 web 文件夹中设置我的 wordpress 博客并在浏览器上访问它?

附言:

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>

最佳答案

从技术上讲,这不依赖于 Symfony。

路由的第一步发生在网络服务器级别(apache、nginx、symfony 的内置测试服务器)。

这些被配置为将对应用程序发出的每个请求发送到 public/index.php

Symfony 从那里获取请求并确定哪个 Controller 来完全填充它。

如果您现在要告诉应用程序忽略该请求,它需要将其转发到子文件夹,这可能会导致沿线某处发生不良行为。

所以,既然你希望你的子文件夹被忽略,你真的想在请求到达 Symfony 之前设置这个规则。

换句话说 - 您应该考虑在服务器级别排除子文件夹被传递到 public/index.php

这是以前的一个答案,它使用 .htaccess 涵盖了 Apache 的这个问题 - Symfony Ignore Directory in web/

关于php - 在 Symfony 中访问 wordpress 博客,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50675168/

相关文章:

php - Ausart 主题选项。我已经安装了一个主题,但我现在有这个错误 :

postgresql - 使用参数而不是硬编码字符串时,Postgres 查询非常慢

php - 奇怪的 cURL 错误 - WHMCS 中的 errno 104(代码 56)

php - 在 Netsuite 中创建新的销售订单时如何设置 Paypal 授权 ID

php - 如何使用 PHP 从存储在 MYSQL 中的字符串计算公式

css - 新闻 |内容区域不会自动展开

javascript - Woocommerce 实时计算 : qty x get_meta ('_value' ) = final value

php - Doctrine 不会在 Mysql 中保留具有 bool 值和 PDO::ATTR_EMULATE_PREPARES = false 的实体

php - 服务容器的生命周期有多长?

php - 在一个人无法完全控制的主机上安装 ffmpeg?+