【问题标题】:.htacces implemented - URL not correctly refreshing.htaccess 已实现 - URL 未正确刷新
【发布时间】:2011-06-08 17:42:19
【问题描述】:

我正在使用 .htaccess。我有一个规则:

RewriteRule ^pg/([a-zA-Z0-9/_-]+)?$ index.php?page=$1 [QSA]

我的一个页面有一个 URL:http://domain.com/pg/page1

在这个页面中有一个元刷新标签:

<meta http-equiv='refresh' content='0;URL=pg/page2'>

现在,当此页面刷新时..形成的新 url 是:http://domain.com/pg/pg/page2pg 来了两次。

我已经在标题中指定了一个基本 href 标记为:

<base href='http://domain.com'>

为什么pg/ 会出现两次以及如何摆脱它。 谢谢。

【问题讨论】:

    标签: php refresh


    【解决方案1】:

    确保路径以正斜杠 ('/') 开头,例如'/pg/page1'

    【讨论】:

    • 谢谢。有效。会不会因此而导致其他一些问题?
    • 仅当您稍后将网站移动到子目录时。前面的斜线告诉浏览器(以及,一旦发出请求,网络服务器也可以)应该从网络根目录请求资源,而不是从当前文件夹。如果您将站点移动到子目录中(从面向 Web 的角度来看,即例如 www.example.com/my_sub_directory/pg/page1),您将需要在正斜杠之后但在其余部分之前指定该子目录路径。
    • 另一个问题是我有一个页面:smstongue.com/pg/d/help/faq 并且有 链接。但是单击此链接时,我会转到smstongue.com/#1 而不是smstongue.com/pg/d/help/faq#1。我在头部使用了 smstongue.com"> ,我认为它正在发生。请建议需要进行哪些更改。
    • 问题是你的&lt;base&gt; 标签,所以你有几个选择。当然,您可以删除&lt;base&gt; 标记并使用绝对路径,或者您可以更棘手一些。我注意到您的 menu.js 文件包含对 jquery 的引用,尽管您没有在该页面上包含 jquery。没有 jQuery:document.onreadystatechange = function () { var f = document.getElementsByTagName('base')[0]; var g = f.parentNode; g.removeChild(f); document.onreadystatechange = null; }; 有 jQuery:$(function(){$('base').remove();});.
    • 无论如何,它都与base 标签相关,所以这就是您需要重点解决的问题。您总是可以将绝对路径放在 链接中。
    猜你喜欢
    • 1970-01-01
    • 2022-01-12
    • 2019-10-16
    • 2017-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多