Kyl*_*yle 7 javascript regex apache mod-rewrite
我使用以下javascript类从查询字符串中提取变量:
getUrlVars : function() {
var vars = {};
var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
vars[key] = value;
});
return vars;
}
Run Code Online (Sandbox Code Playgroud)
这样可行:http://example.com/signinup.html?opt = 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。