【问题标题】:Redirect sub-domain to specific directory using .htacces使用 .htaccess 将子域重定向到特定目录
【发布时间】:2015-10-22 15:19:02
【问题描述】:

之前有个问题,问了这个问题:PHP Image Upload using POST

我发现这个问题的原因是我的域重定向。我在我的域面板中使用了重定向(服务器仿真),它无法处理文件上传。

通过搜索解决方案,我发现了这个:sub-domain directory redirection using htaccess

我启用了 mod_rewrite 模块并尝试了这个 .htacces 文件:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^subdomain\.domain\.de$
RewriteRule ^(.*)$ http://domain.de/sub/directories/$1 [R=301,L]

subdomain.domain.de 有一个 A-DNS 条目设置为我的服务器的 IP。我的服务器的根目录需要身份验证,但我希望子域指向的目录不需要。我不确定重定向是否有效,但是当我打开子域时,它要求进行身份验证。

如何在不让用户进行身份验证的情况下将子域重定向到服务器上的另一个目录?

【问题讨论】:

  • 您的身份验证如何?是http基本认证吗?
  • 是的,这是直接使用站点中的 apache 配置文件进行的基本 HTTP 身份验证。我的 .htaccess 只包含上述内容,它被放置在根目录中。上面代码中名为“sub”的子目录也没有 apache 配置文件中设置的身份验证。
  • 你可以尝试修改这个答案:stackoverflow.com/a/7390331/1163642根据你的需要

标签: php apache .htaccess mod-rewrite redirect


【解决方案1】:

在这种情况下,您必须将 virtualHost 用于子域,因为您的基本 HTTP 身份验证在 htaccess 之前执行。
另一种方式,你可以在 RewriteRule 之后在 htacess 文件中配置基本的 HTTP 身份验证,不要在 apache 配置文件中配置。

【讨论】:

  • 感谢您的回答。我使用虚拟主机让它工作。
【解决方案2】:

按照本指南,我能够使用虚拟主机做我想做的事:https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-virtual-hosts-on-ubuntu-14-04-lts

我还必须删除 .htaccess 文件。除了更改新站点可用配置文件中的 ServerAlias/Name 和 DocumentRoot 之外,我什么都不需要更改。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-07
    • 2014-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多