Javascript 找不到我的 mod_rewrite 查询字符串!

2024-01-28

我使用以下 javascript 类从查询字符串中提取变量:

getUrlVars : function() {
    var vars = {};
    var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
        vars[key] = value;
    });
    return vars;
}

So 这有效: http://example.com/signinup.html?opt=login http://example.com/signinup.html?opt=login

I need http://www.example.com/login/ http://www.example.com/login/以同样的方式工作。使用mod_rewrite:

RewriteRule ^login/? signinup.html?opt=login [QSA]

允许加载页面、加载 javascript、加载 css,但我的 javascript 函数找不到opt关键(即,它是undefined)。如何得到opt我的 JavaScript?


JavaScript 是客户端。 Mod_rewrite 是服务器端的。

因此 Javascript 将永远不会看到重写的 URL。就您的浏览器而言,您输入的 URL 就是完成的地址。

唯一真正的解决方案是更改您的 Javascript,以便它查看它所获得的 URL,而不是旧版本(或者可能解析这两种替代方案,因为旧 URL 仍然有效,并且人们可能仍然拥有旧书签)。

另一种可能的解决方案是转到服务器端代码(PHP?什么?),您可以在其中看到重写的 URL,并在那里插入一些可以在客户端解析的 JavaScript 代码。但这不是一个理想的解决方案。您最好选择选项 1 并更改 Javascript 以应对它实际要获取的 URL。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Javascript 找不到我的 mod_rewrite 查询字符串! 的相关文章

随机推荐