将参数从Mod_rewrite传递到PHP,前端只包含HTML &JS


Passing Parameters from Mod_rewrite to PHP with a front end comprising of just HTML & JS

我有一个web应用程序,前端是HTML &JavaScript/jQuery,后面是PHP。

它使用了丑陋的URL,如:host/app/Page.php?userid=1....丑!所以稍加MOD_REWRITE, url就会变成url/page/1/

RewriteRule    ^page/([0-9]+)/?$    host/app/page.php?userid=$1    [NC,L]  

接下来它本来做了简单的jQuery GET请求到PHP文件来获取动态数据。

var params = A JS function to get all paramters after the ? in URL
var userid = params.id;
$.getJSON('host/app/page_code.php',{'userid':userid}, function(data) {
    var blah = data.blah;
});

现在,在使用MOD_REWRITE之后,我现在没有很好的方法来获取参数的前端,只有页面/1格式。但是,循环并在斜杠之间获取每个参数感觉不像是正确的方法。

所以我点击谷歌,似乎从MOD_REWRITE发送参数似乎是这样做的。所以我的问题是,这怎么可能,怎么做到的?

我如何从MOD_REWRITE URL获取参数,将这些参数发送到PHP后端,然后用JSON返回响应到前端?

编辑:我的问题是我需要从JS传递参数到PHP后端,然后得到响应。我最初用JS从URL获得这些参数,然后将它们传递到GET请求中,然后根据发送的参数从PHP获得响应。然而,现在我在URL上使用了mod_rewrite,我无法看到前端的参数以传统的?a=b&c=d格式捕获。为了在JS中获得这些,我只能通过循环并获得斜杠之间的每个参数来做到这一点。这样做似乎不对。我实际上需要一些如何获得参数的PHP代码在一个单独的页面从前端。然后将它与PHP代码的响应一起传递回前端,这样我就有了用户id。我不希望任何php在前端文件,以保持它都分开。必须有一种方法将参数从url获取到另一个文件中的PHP代码,然后用usersid将响应发送回前端HTML&JS。我是一个新的整个MOD_REWRITE干净的url,它是混乱的地狱我!

你可以用javascript编写一个反向路由器,在其中给定一个URL,它返回参数。

关于jsfiddle

的例子(非常糟糕的一个,只是给你一个想法)

缺点:你必须将路由从.htacces文件复制到Javascript。每次在这个文件中有一些变化,你也必须在Javascript中进行修改。

编辑:

<标题> 另一个方法
  • 在PHP中完成所有的路由处理,甚至不使用.htaccess,然后以JSON格式检索路由数据。您可以通过Ajax请求
  • 访问它。

的例子:

jQuery.ajax({
    url: 'reverse_routing.php', 
    type: 'json', 
    data: {
        url: window.location.pathname 
    }, 
    function(params) {  
       // Do your stuff here...
    }
});

使用http://api.jquery.com/serialize/

jquery示例

$( "form" ).on( "submit", function( event ) {
  event.preventDefault();
  console.log( $(this).serialize() );
});

在PHP意义上传递数据的想法。

data = $( "form" ).serialize();
$.post("serverside.php", data, function(returnData)
{
    $("divid").html(returndata)
}