gpt4 book ai didi

apache - 如何在.htaccess文件中编写if-elseif-elseif条件 block ?

转载 作者:行者123 更新时间:2023-12-01 15:14:01 24 4
gpt4 key购买 nike

这是我想用伪代码完成的工作:

if server.host equals 'productionsite.com' then
RewriteBase /
else if server.host equals 'stagingsite.com' then
RewriteBase /staging/mysite
else if server.host equals 'localhost' or server.host equals '127.0.0.1' then
Rewrite /dev/mysite

但是,到目前为止,这实际上是我似乎无法正常运行的内容:
RewriteCond %{HTTP_HOST} =productionsite.com
RewriteBase /

RewriteCond %{HTTP_HOST} =stagingsite.com
RewriteBase /staging/mysite

RewriteCond %{HTTP_HOST} =localhost
RewriteBase /dev/mysite

感谢您能提前获得的任何帮助。

最佳答案

本身不是一个答案(以评论开始),但可能会有所帮助:

您的方法无效,因为RewriteBase不受RewriteCond指令的影响。一个RewriteCond只能跟随另一个RewriteCond或RewriteRule。 RewriteBase是完全不同的野兽:我认为有条件的RewriteBase是不可能的;我有一种模糊的感觉,它是在启动时处理的,因此不能动态更改(但是对此我可能是非常错误的)。 Google吸引了很多“条件重写库”,您可能会仔细看一下,但是它们看起来基本上是负面的。

IfDefine来达到类似的效果是值得一试的。

另外,您可以尝试使用RewriteRules和环境变量来执行此操作:

 RewriteBase /

RewriteCond %{HTTP_HOST} =stagingsite.com
RewriteRule ^ - [E=FRB:/staging/mysite]

RewriteCond %{HTTP_HOST} =localhost
RewriteRule ^ - [E=FRB:/dev/mysite]

然后在每个重写路径前添加FRB环境变量,例如
 RewriteRule ^home$ %{ENV:FRB}/index.php

但这只是未经检验的理论。

关于apache - 如何在.htaccess文件中编写if-elseif-elseif条件 block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7813554/

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