【问题标题】:Use .htaccess redirect to keep original url but show content of redirect使用 .htaccess 重定向保留原始 url 但显示重定向内容
【发布时间】:2019-11-17 23:55:02
【问题描述】:

我希望访问 URL /this-url.html 的人能够看到 /that-url 的站点,但将 url 保留为 /this-url.html

我已经尝试过各种 stackoverflow 解决方案,但没有一个对我有用。我尝试使用 [P] 标志、[QSA] 标志并且根本没有使用标志。

我的基本代码:

重写引擎开启 重写规则 ^/this-url.html$ /that-url

重定向始终有效,但它也会更改 URL。我需要将 URL 保留为 /this-url.html

【问题讨论】:

    标签: .htaccess redirect


    【解决方案1】:

    当您想了解如何使用某些工具或实用程序时,您忘记查阅最重要的信息来源:文档。也就是说,作为典型的开源项目,优秀质量并且带有很好的例子。你真的应该开始研究它:https://httpd.apache.org/docs/current/mod/mod_rewrite.html

    这是一个稍微修改过的版本,应该可以满足您的需求:

    RewriteEngine on 
    RewriteRule ^/?that-url$ /this-url.html [END]
    

    主要区别:在动态配置文件 RewriteRulesrelative 路径进行操作时,您试图匹配 absolute 路径,这仅适用于实现的规则真正的 http 服务器的主机配置。我发布的版本同样有效,因此更健壮。

    如果您使用上述规则收到内部服务器错误(http 状态 500),那么您很可能操作的是非常旧版本的 apache http 服务器。在这种情况下,请尝试使用旧的 L 标志,它在这里可能会起作用,尽管这实际上取决于您所处的具体情况。

    【讨论】:

    • 感谢您的回答!不幸的是,当我尝试您的解决方案时出现 404 错误。我也试过用 L 标志,但没有任何区别......你知道为什么吗?
    • 嗯,您实际尝试做的很可能与您所要求的相反。只是猜测,但无论如何这更有意义。所以我相应地改变了答案。
    猜你喜欢
    • 2015-07-27
    • 1970-01-01
    • 1970-01-01
    • 2017-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多