azure - .htaccess If/Else 语句不适用于 HTTP_HOST

标签 azure apache .htaccess mod-rewrite apache-expression

这是我的.htaccess文件:

 RewriteEngine On

 <If "%{HTTP_HOST} == '<myHost>'">
   RewriteRule ^$ <url> [R=301,L]
 </If>
 <Else>
  RewriteRule ^$ <another_url> [R=301,L]
 </Else>

但它不起作用,看起来像 <If>语句被忽略。我还从 $_SERVER['HTTP_HOST'] 发出了回声在 PHP 中,我得到了我期望的值。另外,RewriteRule如果我删除 If/Else 语句就可以工作。

我正在将 Azure Webapp 与 Apache/2.4.38 (Debian) 结合使用

最佳答案

ifelse block 内,您可以使用 RedirectMatch 指令,因为它与它配合使用。 RewriteRule 不起作用,因为它会覆盖 IF/ELSE 并与之冲突。

 RewriteEngine On

 <If "%{HTTP_HOST} == '<myHost>'">
 RedirectMatch 301 ^/$ https://example.com
 </If>
 <Else>
 RedirectMatch ^/$ https://example2.com
 </Else>

关于azure - .htaccess If/Else 语句不适用于 HTTP_HOST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68620000/

相关文章:

Azure 交换槽,当前处理请求已完成?

php - 如何为本地主机正确下载并安装带有 PHP、MySQL 等的 apache?

PostgreSQL/Apache 上的 Python/Django 和 HTML/CSS/JS/jQuery?

apache - 在 Elastic beanstalk 上设置 https 代理

azure - 如何使用 Rest API java 客户端在 couchDB 中创建附件

azure - 如何在 Azure 应用程序见解中执行明确的声明?

azure - 从 DBFS 安装到 Azure Data Lake 创建新表

android - 无法在我的 Android 设备上访问 wamp 服务器(本地主机)

php - 我可以将 .user.ini 文件放在 PHP 文档根目录之外吗?

linux - 不使用数据库的访问控制