了解htaccess和$ _GETs

时间:2019-04-08 20:41:25

标签: javascript php ajax .htaccess

这就是我的网站的结构...

articles.php包含布局html,以显示该类别的所有文章。 article.js包含用于获取数据库查询结果并将其传递到articles.php页面的控制元素。 js脚本中有一个dataTable,该数据表显示在articles.php页面上。 ajax_articles.php包含查询请求并返回查询的json文件结果。在json文件中是指向各个文章的链接。链接的结构为干净的SEO URL(例如article / 001 / moby_dick)。

这就是我对htaccess的理解。

当用户选择文章时,URL(即https://www.example.com/article/001/moby-dick)通过htaccess传递,并带有RewriteRule ^ article /([0-9] +)/([a-z _-] +)文章.php?art_id = $ 1&art_name = $ 2 [NC,L]将显示SEO“漂亮” URL,但系统所知道的将是包含两个参数的URL,$ _ GET可以使用这两个参数来获取这两个参数。我对过程的理解是否正确?

我已经注意到,使用htaccess时,我现在必须使用完整路径名来加载支持(.js)和图形文件。此外,我无法通过js $ _GET.art_id和$ _GET.art_name获取变量。

非常感谢您的协助。

1 个答案:

答案 0 :(得分:0)

在此配置中,您无法使用javascript访问GET变量,因为在URL重写之后它们不存在。查询参数已删除。

仍有一些方法可以使用JavaScript中的window.location.href.split()方法从URL中提取这些值。

// var myurl = window.location.href; // this will get the string of your current URL. Used manual string in this example
var myurl = "https://www.example.com/article/001/moby-dick"; // manual URL for sake of an executable example

var spliturl = myurl.split("/"); // ["https:","","example.com","article","001","moby-dick"]

var articleid = spliturl[4]; // "001"
var articlename = spliturl[5]; // "moby-dick"

// see the variables in action
console.log("id: ", articleid);
console.log("name: ", articlename);