.htaccess使用多个参数重定向ajax请求

时间:2017-10-19 11:34:01

标签: javascript php jquery ajax .htaccess

我想将包含两个参数的ajax请求重定向到特定页面。 这是我的文件夹结构:

.
+-- index.php
|
+-- /js/functions.js
|
+-- /pages/projects.php
|     +
|     +-- /projects-list/1.example.php
|
+-- /duo/index.php

为了显示1.example.php: 我通过以下ajax函数(/js/function.js)从index.php请求../pages/projects.php:

$.ajax({
  url: '../pages/projects',
  success: function( response ) {
   // load the response
  }
});

我将网址更改为

http://localhost:8888/index.php?page=pages/projects

一旦我在这里,我有一个链接提交另一个ajax请求加载/pages/projects-list/1.example.php:

$.ajax({
  url: './pages/projects.php',
  data: 'project=project-list/1.example',
  success: function( response ) {
   // load the response
  }
});

结果网址是:

http://localhost:8888/index.php?page=pages/projects&project=project-list/1.example

如何通过.htaccess将此页面重定向到:/duo/index.php? 在网络选项卡中,似乎请求由projects.php处理,所以我尝试了:

#Redirect example
RewriteEngine On
RewriteCond %{QUERY_STRNG} project=project-list/1.example
RewriteRule ^projects\.php$ /duo/? [L,R=301]

但它不起作用...... 谢谢!

如果需要:

我通过以下方式手动更改网址:

function ChangeUrl(page, url) {
  if (typeof (history.pushState) != "undefined") {
    var obj = { Page: page, Url: url };
    // console.log(obj);
    history.pushState(obj, obj.Page, obj.Url);
  }
}

这样我就可以重新加载包含我通过ajax加载的动态元素的页面了

0 个答案:

没有答案