【问题标题】:301 Redirect in htaccess is appending old file name to new urlhtaccess 中的 301 重定向正在将旧文件名附加到新 url
【发布时间】:2013-04-17 07:30:26
【问题描述】:

我在我的 htaccess 文件中使用 301 重定向规则将一些旧网址重定向到新网址。但是,在一些重定向中,旧文件名附加到新 url 上,所以我在这些重定向上遇到 404 页面错误。

例如,这是我的重写规则

Redirect 301 /mtrx/motion-control/ http://www.zerolinegolf.com/golf-mtrx-for-the-golfer

但是显示的页面是

http://www.zerolinegolf.com/golf-mtrx-for-the-golfermotion-control

这是整个 .htaccess 代码

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

#REDIRECTS

Redirect 301 /videos/ http://www.zerolinegolf.com/videos-2
Redirect 301 /press-releases-2/ http://www.zerolinegolf.com/media
Redirect 301 /mtrx/motion-control/ http://www.zerolinegolf.com/golf-mtrx-for-the-golfer
Redirect 301 /mtrx/pelvis-power/ http://www.zerolinegolf.com/golf-mtrx-for-the-golfer
Redirect 301 /mtrx/mtrx-score/ http://www.zerolinegolf.com/golf-mtrx-for-the-golfer
Redirect 301 /mtrx/recommended-drills/ http://www.zerolinegolf.com/golf-mtrx-for-the-golfer
Redirect 301 /mtrx/ http://www.zerolinegolf.com/golf-mtrx-for-the-golfer

感谢您的帮助。

【问题讨论】:

    标签: apache .htaccess http-redirect


    【解决方案1】:

    看起来 mod_alias 和 mod_rewrite 可能相互干扰,也可能相互干扰。

    请记住,Redirect 指令将两个路径节点链接在一起。所以如果你有,说:

    Redirect 301 /mtrx/ http://www.zerolinegolf.com/golf-mtrx-for-the-golfer
    

    该语句还采用:/mtrx/foo/bar/ 并将其重定向到 http://www.zerolinegolf.com/golf-mtrx-for-the-golferfoo/bar/

    您应该改用RedirectMatchRewriteRule

    对于前者:

    RedirectMatch 301 ^/videos/?$ http://www.zerolinegolf.com/videos-2
    RedirectMatch 301 ^/press-releases-2/?$ http://www.zerolinegolf.com/media
    RedirectMatch 301 ^/mtrx/motion-control/?$ http://www.zerolinegolf.com/golf-mtrx-for-the-golfer
    RedirectMatch 301 ^/mtrx/pelvis-power/?$ http://www.zerolinegolf.com/golf-mtrx-for-the-golfer
    RedirectMatch 301 ^/mtrx/mtrx-score/?$ http://www.zerolinegolf.com/golf-mtrx-for-the-golfer
    RedirectMatch 301 ^/mtrx/recommended-drills/?$ http://www.zerolinegolf.com/golf-mtrx-for-the-golfer
    RedirectMatch 301 ^/mtrx/?$ http://www.zerolinegolf.com/golf-mtrx-for-the-golfer
    

    对于 mod_rewrite,您必须将这些规则放在您的 wordpress 规则之前

    RewriteRule ^/?videos/?$ http://www.zerolinegolf.com/videos-2 [L,R=301]
    RewriteRule ^/?press-releases-2/?$ http://www.zerolinegolf.com/media [L,R=301]
    RewriteRule ^/?mtrx/motion-control/?$ http://www.zerolinegolf.com/golf-mtrx-for-the-golfer [L,R=301]
    RewriteRule ^/?mtrx/pelvis-power/?$ http://www.zerolinegolf.com/golf-mtrx-for-the-golfer [L,R=301]
    RewriteRule ^/?mtrx/mtrx-score/?$ http://www.zerolinegolf.com/golf-mtrx-for-the-golfer [L,R=301]
    RewriteRule ^/?mtrx/recommended-drills/?$ http://www.zerolinegolf.com/golf-mtrx-for-the-golfer [L,R=301]
    RewriteRule ^/?mtrx/?$ http://www.zerolinegolf.com/golf-mtrx-for-the-golfer [L,R=301]
    

    【讨论】:

    • 我使用了第一组规则,效果很好!感谢您的帮助
    猜你喜欢
    • 2019-08-12
    • 2021-12-27
    • 2015-01-13
    • 2014-04-04
    • 1970-01-01
    • 2017-09-25
    • 1970-01-01
    • 2012-02-16
    • 2013-01-07
    相关资源
    最近更新 更多