【问题标题】:redirect 301 question重定向 301 问题
【发布时间】:2010-11-07 13:53:54
【问题描述】:

我们刚刚切换到我们的新网站重新设计。

我们在文件夹“v1”中有前一个副本,而新副本在“v2”中。我玩 2 个 .htaccess 文件。该文件的组织方式如下:

root
 L .htaccess (1)
 L v1
 L v2
    L .htaccess (2)

.htaccess 1 做了两件事:

  • 从 URI 中删除 www
  • 将所有请求重定向到 v2/

规则是:

RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]

RewriteCond %{REQUEST_URI} !^/v2/ [NC]
RewriteRule ^(.*)$ /v2/$1 [NC,L]

现在,我有一些特定的 URL 已被很好地编入索引。 例如:example.com/pixflow/

我想将其 301 重定向到 example.com/projects/pixflow1/(物理上意味着 example.com/v2/projects/pixflow1/)

为了实现这一点,我放入了 .htaccess 1:

RewriteRule ^pixflow/$ http://%{HTTP_HOST}/projects/pixflow1/ [L,R=301]

但这不起作用,它返回 404。我做错了什么?

【问题讨论】:

  • 您真的要求/pixflow/ 而不仅仅是/pixflow
  • 是的,我想。原来的网址是domain.com/pixflow
  • 它对我有用:lab-au.com/pixflow ;)
  • 哦,好吧,“domain.com”斗篷就这么多:)
  • 最好使用 example.com 作为域名示例。

标签: .htaccess mod-rewrite http-status-code-301


【解决方案1】:

似乎把它放在 .htaccess (1) 中是可行的:

RewriteRule ^pixflow/$ http://domain.com/projects/pixflow1/ [L,R=301]

【讨论】:

    【解决方案2】:

    您可以只声明替代的绝对 URL 路径:

    RewriteRule ^pixflow/$ /projects/pixflow1/ [L,R=301]
    

    但你的也应该可以。

    【讨论】:

    • 太棒了!使 htaccess 文件更轻、更易读。
    猜你喜欢
    • 1970-01-01
    • 2023-03-25
    • 2014-03-10
    • 2011-11-01
    • 2015-11-28
    • 2012-08-22
    • 2011-08-02
    • 1970-01-01
    相关资源
    最近更新 更多