【问题标题】:htaccess redirecting url but keeping typed urlhtaccess 重定向 url 但保留输入的 url
【发布时间】:2012-08-06 11:50:37
【问题描述】:

我已经设法使用 .htaccess 将域 url 重定向到站点内的页面。其实我什么都没学,只是用了服务端的web表单。

无论如何,它只是实现重定向的效果,并显示新重定向的URL,而我希望它保持输入的那个。

是的,这肯定是一个常见问题,但我尝试按照本网站上另一篇关于此问题的帖子的建议(删除一些标志)并没有帮助。

这是我现在的 .htaccess 文件(或多或少):

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.a-site.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.a-site.com$
RewriteRule ^$ http://www.a-site.com/a-file.html [L]

【问题讨论】:

    标签: apache .htaccess


    【解决方案1】:

    您的条件似乎无关紧要:

    RewriteCond %{HTTP_HOST} ^a-site.com$ [OR]
    RewriteCond %{HTTP_HOST} ^www.a-site.com$
    

    也可以写成:

    RewriteCond %{HTTP_HOST} ^(www\.)?a-site.com$
    

    看起来这是两次相同的主机匹配。但是您的RewriteRule 将始终重定向浏览器,因为它前面有一个http://www.a-site.com,它告诉apache 使用302 重定向。尝试删除它:

    RewriteRule ^$ /a-file.html [L]
    

    【讨论】:

    • 谢谢。不过,这似乎没有任何区别。哦,尽管我写了什么,但第一个 RewriteCond 实际上是针对 a-site.com(没有 www),所以它们是不同的。
    • 嗨,它确实有效,我认为我的浏览器以某种方式缓存了旧网址。在 Firefox 中切换到不同的配置文件得到了预期的效果。
    • @RobF 很奇怪,这样的事情通常会立即生效。我已经编辑了答案以修复条件错字
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-27
    • 2014-09-15
    • 2019-11-17
    • 1970-01-01
    • 2012-12-04
    • 1970-01-01
    相关资源
    最近更新 更多