gpt4 book ai didi

Apache mod_rewrite 更改 PHP 脚本中的真实服务器端口输出

转载 作者:行者123 更新时间:2023-12-03 03:18:13 25 4
gpt4 key购买 nike

我注意到,当使用 mod_rewrite 时,即使 apache 在端口 8080 上,PHP 也会返回 server_port 80。

即我有这个网址:http://myvirtualhost.8080/index.php和这个 PHP 片段:

<?php echo $_SERVER['SERVER_PORT']; ?>

在 .htaccess 中我有这个简单的规则

RewriteEngine on
RewriteRule ^/?$ index.php [NC,L]

打开 mod_rewrite 后,输出为“80”(错误)

关闭 mod_rewrite 后,输出为“8080”(正确)

正常吗?有什么简单的解决方案吗?事实上,我需要检查要在条件 PHP 脚本中使用的真实服务器端口,例如:

<?php 
if ($_SERVER['SERVER_PORT'] == 80) {
do something
} else {
do something else
}
?>

当然,这实际上是不可能的,因为 SERVER_PORT 上的 mod_rewrite 始终为 80。我不想弄乱 .htaccess 文件,因此 PHP 脚本解决方案会很棒...

提前致谢!

最佳答案

您需要设置“UseCanonicalPhysicalPort”

UseCanonicalPhysicalPort on

这将确保重写规则将使用与请求相同的端口重写 URL。

关于Apache mod_rewrite 更改 PHP 脚本中的真实服务器端口输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4577984/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com