【问题标题】:.htaccess rewrite/redirect directory to subdomain.htaccess 重写/重定向目录到子域
【发布时间】:2014-09-16 05:52:46
【问题描述】:

在我网站的根目录.htaccess 文件中,我有这里显示的代码重定向到www 版本,以及如果在目录根目录中隐藏index.php 页面:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,NC]
RewriteRule ^index\.php$ http://www.example.com/ [R=301,NC,L]

在这个站点中,我有一个位于 http://www.example.com/app/API/ 的 API

我想做两件事:

  1. 通过子域 http://api.example.com/ 执行所有 API 调用(但实际上在原始 URL http://www.example.com/app/API/ 处处理它们)

  2. 将所有流量从http://www.example.com/app/API/ 重定向到http://api.example.com/,同时保持所有查询参数完整。

我要问的问题似乎相当简单,但无论出于何种原因,我都无法弄清楚(即使经过大量搜索)。我可以通过我的托管服务提供商设置子域,但我更愿意使用.htaccess 进行进一步的自定义。

【问题讨论】:

  • www.example.comapi.example.com 是否都指向同一个文档根目录?
  • 目前,没有.htaccess 影响子域。这是否回答你的问题? @JonLin
  • 另外,我不希望对域的所有调用都转发到子域。只调用app/API/ 目录。主网站仍然存在于主 example.com 域根目录中
  • @adamdehaven 如果主域和子域不共享相同的 DocumentRoot,这是不可能的。如果您访问http://api.example.com/app/API/,它会导致您获得与访问http://www.example.com/app/API/相同的结果吗?
  • 不,不应该是这样 - 请参阅原始帖子。我只是认为有一种方法可以在浏览器中重写 URL,以便 URL 读取 http://api.example.com/

标签: .htaccess mod-rewrite subdomain


【解决方案1】:

试试:

RewriteCond %{HTTP_HOST} !^api\. [NC]
RewriteRule ^app/API/(.*)$ http://api.example.com/$1 [L,R=301]

RewriteCond %{HTTP_HOST} ^api\.example\.com$ [NC]
RewriteRule ^(.*)$ /app/API/$1 [L]

【讨论】:

    猜你喜欢
    • 2014-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-25
    • 2017-06-26
    • 1970-01-01
    • 2014-05-04
    • 2023-03-14
    相关资源
    最近更新 更多