【问题标题】:Redirect 301 /subfolder/old-page-name.html http://domain.com/new-page-name.html Not Working重定向 301 /subfolder/old-page-name.html http://domain.com/new-page-name.html 不工作
【发布时间】:2012-10-07 09:50:40
【问题描述】:

我是一个完全的新手,但我看不出我做错了什么,对于已更改名称但内容相同的页面来说,这似乎是非常简单的逐页重定向。

这是 .htaccess 文件,其中只有一个页面重定向低于规范重定向:

Options +FollowSymlinks
RewriteEngine On

RewriteCond %{http_host} ^clarityperformancealliance.com [nc]
RewriteRule ^(.*)$ http://www.clarityperformancealliance.com/$1 [r=301,nc]

Redirect 301 /clarity/[A].html http://www.clarityperformancealliance.com/current-performance.html

我意识到旧页面是一个 very 名称不佳的页面(使用方括号),但我不认为方括号是它失败的原因,因为我试图重定向更正常的页面没有括号的名称也会失败。

我在使用我认为是 Apache 服务器的共享网络解决方案 Linux 服务器上。他们以我认为非常典型的方式设置了共享服务器,因为我的根文件夹称为 htdocs,我可以在其中创建任意数量的子文件夹和网站,因此我有一个名为“clarity”的子文件夹特定的网站。

非 www 到 www 的重定向效果很好。是所有单独的页面重定向(此处仅显示一个)都不起作用。

我错过了什么?

【问题讨论】:

    标签: linux apache .htaccess redirect


    【解决方案1】:

    重定向使用的是%编码的url,所以我认为[A].html应该是%5BA%5D.html

    现在您的配置似乎正确,除非清晰子文件夹是网站根目录,在这种情况下,重定向中的 url 路径参数不应包含 /clarity 部分;重定向适用于请求 uri,而不是文件系统路径。

    所以可能是:

    Redirect 302 /%5BA%5D.html http://www.clarityperformancealliance.com/current-performance.html
    

    请注意,我使用的是 302 而不是 301。在规则生效之前,您应该始终使用 302(临时)重定向,而不是 301(永久)。使用永久重定向时,如果要对其进行测试,则需要在每次修改之间关闭 Web 浏览器。浏览器在收到 301 后不会重新请求给定的 url。

    如果这不起作用,您是否仅在旧域中使用旧 url 或在新域中请求这些旧 url 时尝试重定向问题?

    【讨论】:

      猜你喜欢
      • 2018-10-21
      • 2019-05-03
      • 1970-01-01
      • 1970-01-01
      • 2012-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多