【问题标题】:Apache redirect question - mod_rewrite or mod_aliasApache 重定向问题 - mod_rewrite 或 mod_alias
【发布时间】:2011-08-14 09:54:05
【问题描述】:

我有特殊需要:

example.com/store/{location} 必须重定向到 example.com/store2/{location}

这需要重定向,而不仅仅是一个 url 'rewrite',所以我猜我需要 mod_alias,对吧?有人愿意分享正确的代码吗?我对 mod_rewrite 和 mod_alias 都有些模糊。 (希望我问对了)谢谢!!

【问题讨论】:

标签: apache mod-rewrite mod-alias


【解决方案1】:

如果你想告诉浏览器重定向它的位置,你可以简单地使用mod_alias

Redirect /store http://example.com/store2

如果您的意思是永久重定向,则为以下内容:

RedirectPermanent /store http://example.com/store2

至于您的困惑,mod_alias 基本上是 mod_rewrite 的更简单版本。引用GreyWyvern:

本质上,如果你正在做一个没有附加任何复杂条件的“重写”,你应该使用 mod_alias。相反,如果你想将请求重定向到不希望在浏览器地址栏中显示的文件和查询字符串,你应该使用 mod_rewrite

【讨论】:

    【解决方案2】:
    RewriteRule ^/store/(.*)/$ store2/$1 [R=301,L]
    

    【讨论】:

    • 去掉结尾的/,以防用户不写它。顺便说一句 @spadeworkers 这是 mod_rewrite
    • 这不起作用。我在 store 目录中的 .htaccess 中有以下代码: RewriteEngine on RewriteRule ^/store/(.*)/$ store2/$1 [R=301,L] 没有错误或任何东西,只是没有重定向.
    • 我也尝试过删除尾部斜杠
    • 我相信RewriteRule ^/store(.*)$ http://example.com/store2$1 [R=301,L] 的工作方式应该与我建议的基本相同,并且301 也可以在这里替换为permanent
    猜你喜欢
    • 2014-09-05
    • 1970-01-01
    • 2014-11-16
    • 1970-01-01
    • 1970-01-01
    • 2010-12-29
    • 2011-06-18
    • 2019-02-02
    • 2013-05-26
    相关资源
    最近更新 更多