是否可以(实际上)使用 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/?的主要内容,如果未能解决你的问题,请参考以下文章