我有一个Apache编写,除了在使用'tabs'的页面之外,它可以在任何地方使用。
出于某种原因,选项卡正在加载,好像它们是通过AJAX加载的完整页面一样(通过index.php作为重写指示运行 - 但它不应该重写一个我认为的#锚链接...)
有没有办法可以阻止它这样做?这很奇怪,因为不仅将#link视为真实的URL,而是通过内联样式向 <html>
添加-33,000px,所以这就是它看起来像我在检查工具中禁用它。否则它只是黑色而且非常长。
我应该补充一点,这不是问题,直到我添加<base href="/folder/">
来修复它没有正确重写子目录的问题。 之前,它仍然进行了重写并正确呈现了页面。
更新
这肯定是<base>
和jQueryUI的.tabs
冲突。当我删除重写并使用长URL时,它会不断克隆它们。重写使其保留了大约重写12次左右。
答案 0 :(得分:1)
mod_rewrite
也会查看片段标识符,但您可以在RewriteCond
中告诉它。
以下仅允许不以片段标识符结尾的URI。
RewriteCond %{REQUEST_URI} !(#(.*))$
答案 1 :(得分:1)
感谢this错误报告,我找到了解决方案。
$.fn.__tabs = $.fn.tabs;
$.fn.tabs = function (a, b, c, d, e, f) {
var base = location.href.replace(/#.*$/, '');
$('ul>li>a[href^="#"]', this).each(function () {
var href = $(this).attr('href');
$(this).attr('href', base + href);
});
$(this).__tabs(a, b, c, d, e, f);
};
//$('#the-object').tabs();
显然在1.8它工作,在1.9它循环。这会将基本href添加到链接,从而解决问题。
答案 2 :(得分:0)