从 php 代码中的 htaccess 读取环境变量集
Reading environnement variables set from htacess inside php code
我目前正在将应用程序从非常旧的 symfony 2.1 版本迁移到 symfony 6 版本。
并且有一段代码不再起作用我无法理解:
在 htaccess 文件中有多个这样的定义:
RewriteCond %{HTTP_HOST} ^www\.cg\.mywebsite(\.com)?(\:[0-9]+)?$
RewriteRule (.*) [E=COUNTRY:57]
也就是说,如果主机模式遵循重写条件,那么我可以在 PHP 代码中让我的国家/地区值等于 57
$country = $request->server->get('COUNTRY', 1);
这在旧应用程序中工作得很好,但在新应用程序中我总是得到 1,就好像国家根本没有定义一样
旧应用程序:Symfony 2.1 / Php 5
新应用:Syfony 6 / Php8
the local server I'm using is the built in local symfony server.
.htaccess
是一个 Apache 配置文件。如果您使用的是内置的 symfony 网络服务器(或 PHP 内置的网络服务器)那么这不是 Apache 并且不会处理 .htaccess
文件(并且环境变量是不会被设置)。
如果您需要为您的应用程序逻辑处理 .htaccess
文件,那么您将需要 运行 Apache,或者将此逻辑移动到您的 application/PHP.
我目前正在将应用程序从非常旧的 symfony 2.1 版本迁移到 symfony 6 版本。
并且有一段代码不再起作用我无法理解:
在 htaccess 文件中有多个这样的定义:
RewriteCond %{HTTP_HOST} ^www\.cg\.mywebsite(\.com)?(\:[0-9]+)?$
RewriteRule (.*) [E=COUNTRY:57]
也就是说,如果主机模式遵循重写条件,那么我可以在 PHP 代码中让我的国家/地区值等于 57
$country = $request->server->get('COUNTRY', 1);
这在旧应用程序中工作得很好,但在新应用程序中我总是得到 1,就好像国家根本没有定义一样
旧应用程序:Symfony 2.1 / Php 5
新应用:Syfony 6 / Php8
the local server I'm using is the built in local symfony server.
.htaccess
是一个 Apache 配置文件。如果您使用的是内置的 symfony 网络服务器(或 PHP 内置的网络服务器)那么这不是 Apache 并且不会处理 .htaccess
文件(并且环境变量是不会被设置)。
如果您需要为您的应用程序逻辑处理 .htaccess
文件,那么您将需要 运行 Apache,或者将此逻辑移动到您的 application/PHP.