【问题标题】:Odd URL RewriteRule Behaviour奇怪的 URL RewriteRule 行为
【发布时间】:2019-10-07 19:29:15
【问题描述】:

希望有更好经验的人可以指导我。

参考:https://www.donbur.co.uk/gb-en/news/index.php

这是一个动态生成的新闻摘要列表,带有指向文章页面的按钮链接。直到上周,按钮链接都可以正常工作。

每个链接调用一个 URL

<a class="button" href="https://www.donbur.co.uk/news/<?php echo rawurlencode($row_newsResult['newsurlkey']);?>">Read full article</a>

这很好解析。

为了处理这个链接,我得到了一个 htaccess RewriteRule:

RewriteRule ^news/([^/]*)$ /gb-en/news/article.php?title=$1 [L]

article.php 文件然后使用唯一的标题来识别和显示整篇文章......或者至少这是它应该做的并且已经做了。

不管什么原因,从新闻index.php页面,当链接被点击时,它只是刷新页面并重新写入URL到

https://www.donbur.co.uk/gb-en/news/index.php/[uniquetitleparameter]?title=[uniquetitleparameter]

括号 [] 中的部分显然填充了 rawurlencoded 字符串。

我一辈子都无法理解这里发生了什么——尤其是当我有一个相似的页面,做着非常相似的事情时,工作绝对正常 (https://www.donbur.co.uk/gb-en/features/feature-list.php)!!!!

当我将网站从 http 转换为 https 时,这一切都开始出错了:但如果这相关就无法解决??

【问题讨论】:

  • 在 Chrome 开发工具中使用 缓存禁用 进行测试,然后在“网络”选项卡中检查您获得的 301/302 重定向 URL 是什么。
  • @anubhava 做到了。不确定您如何查看 301/302 重定向,但是当我单击链接时 - 它有效!我明白这是一个缓存的 htaccess 规则吗?我不知道发生了...
  • 是的,这似乎是浏览器缓存问题。

标签: .htaccess mod-rewrite https


【解决方案1】:

原来这只是一个糟糕的缓存问题。按照建议暂时禁用缓存,一切正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-03
    • 1970-01-01
    • 1970-01-01
    • 2020-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多