【问题标题】:HTACCESS: mirror htdocs sub folder to www folderHTACCESS:将 htdocs 子文件夹镜像到 www 文件夹
【发布时间】:2013-12-10 12:17:40
【问题描述】:

由于我的客户托管服务提供商域 cpanel 没有创建子域的可能性,我一直试图弄清楚如何将我的 htdocs 中的子文件夹镜像到我的 .htaccess 中的根 www 文件夹。

根目录:/domains/{domain.com}/htdocs/www/

子:/domains/{domain.com}/htdocs/beta/

我需要保持子域 {beta.domain.com} 完整,以让一切按计划进行。因此,当客户访问 {www.domain.com} 或 {beta.domain.com} 时,他需要看到完全相同的站点,并且域保持不变。

DOCUMENT_ROOT 是 '/etc/apache2/htdocs'

希望有人能帮帮我。

【问题讨论】:

  • 两个域的 DOCUMENT_ROOT 是什么?
  • @anubhava 文档根目录是 '/etc/apache2/htdocs'
  • 那么在这种情况下,/etc/apache2/htdocs/www/etc/apache2/htdocs/beta 路径是什么?我相信/etc/apache2/htdocs/beta 应该有beta.domain.com 的网站内容
  • @anubhava /etc/apache2/htdocs/www 是根目录,包含所有文件和内容。当访问者访问 /etc/apache2/htdocs/beta 时,它将获得 www 文件夹中的所有内容,但带有子域。
  • 嗯,那部分我没听懂。当 DOCUMENT_ROOT 为 htdocs 时,www.domain.com 将如何变为 htdocs/www?有没有现成的规则?你能张贴两个网站的VirtualHost 部分来说明清楚吗?

标签: .htaccess subdomain


【解决方案1】:

此代码在您的DOCUMENT_ROOT/.htaccess 文件中:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^beta\.domain\.com$ [NC]
RewriteRule ^/?$ /www/index.php [L]

【讨论】:

  • 它首先生成了一个目录列表。我猜是因为beta/ 文件夹是空的。我添加了一个简单的index.html,它显示了beta/ 文件夹的index.html,这是错误的不幸。
  • 您需要多描述一下为什么在浏览器中不更改 URL 的情况下显示内容 /beta/index.html 是错误的。
  • 是否也只显示 beta.domain.com 的 www 文件夹内容?
  • 嗯,问题是,例如,如果您访问 beta.domain.com,我的 www 根文件夹中的应用程序索引会看到它并显示网站后面的 cms。在我自己的主机上,我只需添加一个子域并输入httpdocs 作为路径。
  • 老实说,当我发布我的答案时,我以为我理解了您的要求,但现在我再次感到困惑。我不明白你最后的评论。请始终用具体的术语来写。就像我试图打开 URL:'http://.....` 我期待这个 something 但我得到了这个 something-else
【解决方案2】:

此刻我正在帮助他。 托管服务提供商很烂,但我可以试着让它更清楚一点。

托管服务提供商构建了一个困难的地图结构,但如果得到它,它是以下内容:

  • htdocs
    • 域名 ----> 到 WWW 的符号链接
    • www
    • 统计数据

如果我想添加一个子域,他们会按如下方式构建系统, 在 htdocs 目录中,我们应该创建一个新地图,我们将其命名为 users。 我们创建一个目录,目录结构如下:

  • htdocs
    • 域名 ----> 到 WWW 的符号链接
    • www
    • 统计数据
    • 用户

现在,如果我们转到:users.domainname.ext,我们将被定向到目录 users

注意:这是可以在托管服务提供商处创建子域的唯一方法。

现在我所做的是在 users 目录中添加以下 .htaccess 文件。

RewriteEngine On 
RewriteRule ^(.*)$ www.domainname.ext/ [L]

这将重定向到:www.domainname.ext

现在我在 www 目录的 .htaccess 中添加了以下内容:

# mod-rewrite engine
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^users\.domainname\.ext$ [NC]
RewriteRule ^(.*)$ /$1 [L]

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d

RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

问题是子域会重定向到新域,他想要的是url栏显示:users.domainname.ext而不是www.domainname.ext em>

注意:我的 .htaccess 知识不多,但这是我所能得到的。所以我敢打赌我有问题:p 在其中但有了这个我来了最远的哈哈。

注意2:以下部分用于Zend Framework正常工作!

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d

RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-23
    • 2014-03-23
    • 1970-01-01
    • 1970-01-01
    • 2014-06-23
    • 1970-01-01
    • 2017-12-05
    相关资源
    最近更新 更多