Php URL重定向不';我好像不工作
所以我正在做这个项目,我需要做一个推荐模块。 我必须以这样的方式重写URL,页面refere\u handler.php?refhash=(base64encode(email))重新写入/refere/(base64encode(email)) 我有以下重定向代码:-Php URL重定向不';我好像不工作,php,.htaccess,Php,.htaccess,所以我正在做这个项目,我需要做一个推荐模块。 我必须以这样的方式重写URL,页面refere\u handler.php?refhash=(base64encode(email))重新写入/refere/(base64encode(email)) 我有以下重定向代码:- RewriteRule ^refer/(\d+)$ refer_handler.php?refhash=$1 [L,QSA] 下面是refere_handler.php <?php session_start(); in
RewriteRule ^refer/(\d+)$ refer_handler.php?refhash=$1 [L,QSA]
下面是refere_handler.php
<?php
session_start();
include 'dbconnector.php';
include 'inc/inc.functions.php';
include 'dbpdo.php';
if((isset($_SESSION['logged'])) && ($_SESSION['logged']=1))
{
//get the email id from the header
$emailOfTheReferrer = $_REQUEST['refhash']; // we get the refhash from here.
echo base64_decode($emailOfTheReferrer);
////////////////
//Layers -- //
//Check if the refer hash exists (Check if the parent email exists)
}
else
{
header('Location:../index');
}
?>
问题
URL重写似乎不起作用。
当我转到/referef/somerefhash时,它会显示:-未找到。
但是,如果我使用相同的refhash,然后使用URL referer\u handler.php?refhash=thehashhere
然后一切似乎都很顺利
我怎样才能解决这个问题
谢谢。问题是(\d+)
只允许数字。和base64
编码字符串可能包含其他字符
试试这个:
RewriteRule ^refer/(.+)$ refer_handler.php?refhash=$1 [L,QSA]
这将捕获任何字符中的一个或多个