【问题标题】:.htaccess redirect domain to folder.htaccess 将域重定向到文件夹
【发布时间】:2013-07-29 17:38:26
【问题描述】:

我有多个指向同一个 IP 地址的域名。我目前将它们从 /default.asp 文件重定向到基于 SERVER_NAME 的适当文件夹。例如:

http://domain1.com redirects to http://domain1.com/folder1
http://domain2.com redirects to http://domain1.com/folder2

这可行,但网址会在浏览器中显示文件夹名称:

http://domain1.com/folder1/somepage.htm

并且用户不输入文件夹名称就无法进入页面:

http://domain1.com/somepage.htm // This fails because it isn't in the root folder.

我可以使用 .htaccess 文件 (1) 将页面请求路由到适当的文件夹并 (2) 防止文件夹名称出现在浏览器中吗?

这也会将重定向从 /default.asp 文件移动到它可能所属的 .htaccess 文件。

谢谢!

【问题讨论】:

  • 听起来httpd.conf 文件中的 VirtualHost 指令搞砸了。你可以访问这些吗?
  • 我问的原因是domain1 的文档根目录位置错误。您可以尝试使用.htaccess 重写它,但它不会起作用。
  • 嗯? “文档根目录”在错误的位置?我认为没有任何问题,我的域工作正常(我现在什至没有 .htaccess 文件)。我在问是否以及如何重定向域名,以便(1)请求转到特定文件夹以及(2)我是否可以阻止文件夹名称出现在浏览器 URL 中。谢谢。

标签: apache .htaccess redirect


【解决方案1】:
RewriteEngine on

RewriteMap lowercase int:tolower

RewriteCond %{lowercase:%{HTTP_HOST}} ^www\.([^.]+)\.example\.com$
RewriteRule ^(.*) /home/%1/www$1

【讨论】:

  • 此答案假定 OP 未包含在其原始问题中的目录路径、系统和命名约定。此外,如果服务器设置了适当的权限(关于您的最后一条规则),这样的*应该*不起作用。
  • 这是一个想法的例子。给出“复制粘贴”的答案不会教任何东西。不知道你在说什么权限。这是演示它是如何工作的。当然,您必须有权访问要重定向到的文件夹。为此给出 -1 简直就是一个 ***。
  • 在这个网站上,我们努力提供可以在代码中显示的真实答案。有些海报可能没有使用您习惯的 Linux 风格(这看起来像是来自 Redhat 或 CentOS 的东西)。有些人可能正在使用诸如 FreeBSD 或 Windows 之类的东西。您引用的路径看起来像 DocumentRoot,可以在 Apache Config 的 VirtualHost 声明中找到。
  • .htaccess 文件中的 mod_rewrite 只能访问其所在主机的文档根目录中的内容。它看不到文档根目录下方,也无法提供文档根目录之外的页面。如果他们的权限设置为在操作系统的 ROOT 级别(在本例中为 /home 文件夹)可以通过 Web 访问,那么服务器上的权限可能会出现问题。
  • 如果你没有检查,请不要说它是操作系统特定的。这条规则在 Debian 上和在 Windows 上一样有效,当然必须更改目录名称。发帖人问的方式表明这是一般性问题,我真的怀疑他是否真的使用domain1.comdomain2.com - 它们有不同的注册商,注册人,第二个被锁定。 folder1folder2 都不是目录名称。
猜你喜欢
  • 2013-11-08
  • 1970-01-01
  • 2012-10-28
  • 2012-11-23
  • 1970-01-01
  • 2012-09-17
  • 2014-03-17
  • 2017-03-05
  • 1970-01-01
相关资源
最近更新 更多