【问题标题】:Apache rewrite engine, get subdomain and path after itApache重写引擎,获取子域和路径
【发布时间】:2023-03-31 05:45:02
【问题描述】:

我有将子域重写到另一个页面的基本代码。但是如何使用它来获取其中指定的目录的路径并将其传递给我的脚本以及子域本身?

当前代码

RewriteCond %{HTTP_HOST} ^([^.]+)(\.example\.com)$
RewriteRule ^$ handle.php [L]

我想为handle.php 提供在**.example.com* 之后指定的文件路径以及handle.php?path=x&subdomain=y 形式的子域名。

非常感谢任何帮助!

【问题讨论】:

    标签: apache mod-rewrite rewrite


    【解决方案1】:

    您可以使用$_SERVER['HTTP_HOST']$_SERVER['REQUEST_URI'] 访问该信息(也包含查询):

    $path = preg_replace('/\?.*/', '', $_SERVER['REQUEST_URI']);
    $subdomain = substr($_SERVER['HTTP_HOST'], 0, strpos($_SERVER['HTTP_HOST'], '.'));
    

    【讨论】:

      【解决方案2】:

      你需要使用

      RewriteCond %{HTTP_HOST} ^([a-z0-9-]+).example.com [NC]
      RewriteRule ^(.*)$ %1/$1 [L]
      
      • %1是子域名
      • $1 是一个请求

      【讨论】:

      • 这不起作用。添加 /$1 时出现内部服务器错误。我可以单独拥有 %1 或 $1,但是当两者在一起时它会崩溃。
      • 我认为这次崩溃的原因是它导致了无限循环。
      猜你喜欢
      • 1970-01-01
      • 2017-07-02
      • 1970-01-01
      • 1970-01-01
      • 2012-11-30
      • 2010-11-10
      • 2014-09-18
      • 2018-10-05
      • 2021-08-07
      相关资源
      最近更新 更多