是否可以(实际上)使用 htaccess 将站点从 www.example.org/ 移动到 www.example.org/new/?

Posted

技术标签:

【中文标题】是否可以(实际上)使用 htaccess 将站点从 www.example.org/ 移动到 www.example.org/new/?【英文标题】:Is it possible to (virtually) move a site from www.example.org/ to www.example.org/new/ with htaccess? 【发布时间】:2011-03-11 21:50:25 【问题描述】:

我想知道是否可以将网站上传到根目录,但不能使其对公众可见(以及出于 SEO 原因的谷歌)。最好的方法是什么?

是否可以在 .htaccess 文件中添加一些规则,让它看起来像网站是 www.example.org/new/ 而不是 www.example.org?

谢谢

【问题讨论】:

【参考方案1】:

我会在 example.org 下创建一个虚拟主机,例如 beta.example.org 并用密码保护它,直到新站点启动。如果一切正常,我会更新我的 Apache.conf 以将新目录指向 DocumentRoot。

【讨论】:

感谢您的回答,它是共享主机,所以我无权访问 apache.conf 所以您不能更改 DocumentRoot?【参考方案2】:

我更喜欢用明确的目录结构来测试东西。这样,我确信当我上线时不会因为相对或绝对路径中的错误而中断。

如果它是一个全新的站点,我只需使用 Apache mod_auth_* 模块对其进行密码保护。如果是现有网站的新版本,我会在子域下创建一个新网站。

更新

在共享主机环境中,您的选择非常有限。您必须在new 文件夹中实际上传站点,否则它将覆盖旧站点。在这种情况下,不需要什么特别的。

【讨论】:

【参考方案3】:

您可以使用 robots.txt 禁止机器人。我不知道它会帮助你,但我正在使用这种方式。

【讨论】:

【参考方案4】:

要将所有指向 www.example.org 的链接重定向到 www.example.org/new,请将其添加到您的 .htaccess 中:

<IfModule mod_rewrite.c>
  RewriteEngine on

  RewriteCond %REQUEST_URI ^/new/
  RewriteRule ^(.*) $1 [L]

  RewriteRule ^(.*)$ /new/$1 [L,R=301]
</IfModule>

我对你的问题有点困惑。您的主题行似乎对问题的主体提出了不同的问题。但是,如果您不希望搜索引擎在您处理新站点时抓取它,请将其添加到 robots.txt(尽管如果您的旧站点上没有指向新站点的链接,则无论如何也不应该抓取新站点)。你可能还想用密码保护它。

同样出于 SEO 目的,一旦您使用新网站,您将不想断开旧网站上的链接。像这样使用重写规则:

RewriteRule ^corporateplan$ /corporate-services/corporate-plan [L,R=301]

【讨论】:

以上是关于是否可以(实际上)使用 htaccess 将站点从 www.example.org/ 移动到 www.example.org/new/?的主要内容,如果未能解决你的问题,请参考以下文章

使用 htaccess 重定向整个站点

使用 htaccess 将请求 uri 重定向到镜像站点

.htaccess 将子域重定向到外部 URL

apache_conf 如果从开发站点丢失,请抓取实时站点文件 - htaccess

.htaccess 文件中的大量条目会减慢站点访问速度吗?

Magento 站点切换.htaccess