【问题标题】:Using mod_rewrite to redirect all pages in folder on old domain to index of new domain使用 mod_rewrite 将旧域文件夹中的所有页面重定向到新域的索引
【发布时间】:2012-07-16 03:41:34
【问题描述】:

我正在尝试将旧站点 (wellnowwhat.net/nin/*.*) 上的所有页面重定向到新站点 (sykonaut.net/nin_old/) 的索引。我只能访问新站点的 .htaccess (旧站点归朋友所有),所以我正在测试相反的方向。我可以使用 mod_rewrite 将根目录 (sykonaut.net) 重定向到他的根目录 (wellnowwhat.net),但我无法将 nin_old 目录重定向到他的 nin 目录。我猜我也无法重定向相反的方向。这是我的 .htaccess 中的[全部]代码:

AddHandler php5_2-wrap .php
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.sykonaut.net$ [NC]
RewriteRule ^/nin_old(.*)$ http://www.wellnowwhat.net/nin [R,NC,L]

它不起作用。有人知道为什么吗?

【问题讨论】:

    标签: mod-rewrite redirect


    【解决方案1】:

    将您的.htaccess 放在nin_old 目录中。

    RewriteEngine on
    RewriteBase /nin_old
    RewriteRule ^.* http://www.wellnowwhat.net/nin/ [R,NC,L]
    

    当您重定向到目录的外部 URL 时,我会添加尾部斜杠,因为这会减少额外的重定向。

    此外,当您测试所有内容并且一切正常时,将 R 更改为 R=301,因为大多数搜索引擎都首选永久重定向。

    【讨论】:

    • 无论出于何种原因,这都行不通。我现在在网站根目录和 nin_old 中都有一个 .htaccess,这可能是问题吗?
    • @electrickoolaid42 尝试删除您的RewriteCond %{HTTP_HOST} ^www.sykonaut.net$ [NC] 我认为无论如何都不需要这样做
    • 人力资源部。进步。现在 Firefox 给了我这个消息:页面没有正确重定向:Firefox 检测到服务器正在以永远不会完成的方式重定向对该地址的请求。这个问题有时可能是由禁用或拒绝接受 cookie 引起的。
    • @electrickoolaid42 奇怪...这两个域使用同一个服务器吗?还是您的旧服务器www.sykonaut.net 已经开始重定向?
    • 这些域位于不同的服务器上,但我确实发送了一组旧的(非工作)行让我的朋友放入他的 .htaccess。我现在让他删除它们
    【解决方案2】:

    在 apache 2.0 和更高版本中,前缀(前导“/”)在通过 .htaccess 文件中的规则的重写引擎放入之前从 URI 中删除。尝试从规则中的正则表达式中删除前导斜杠:

    RewriteRule ^nin_old(.*)$ http://www.wellnowwhat.net/nin [R,NC,L]
    

    【讨论】:

    • 乔恩没有什么不同。 =/
    • @electrickoolaid42 您的 htaccess 中还有哪些其他规则?你确定他们没有干涉?如果我将这些规则放在我的 apache 服务器的 htaccess 中,并请求 sykonaut.net/nin_old/blah 它会将我重定向到 wellnowwhat.net/nin
    猜你喜欢
    • 2014-05-06
    • 1970-01-01
    • 2011-09-24
    • 2012-01-15
    • 2016-10-16
    • 1970-01-01
    • 1970-01-01
    • 2018-10-09
    • 1970-01-01
    相关资源
    最近更新 更多