以下案例的htaccess规则是什么:
我将用户重定向到此页面:
system/abc123/step1
没有规则可能是:
system.php?id=abc123&step=step1
但是如何通过$_GET
传递两个参数?
ABC123
步骤1
非常感谢。
答案 0 :(得分:1)
我在寻找的是:
在我的.htaccess中:
RewriteEngine on
RewriteRule ^system/(.+)/(.+)$ system?token=$1&step=$2 [L]
在我的system.php页面中:
$QUO_Token = $_GET['token']; // abc123
$QUO_Step = $_GET['step']; // step1
答案 1 :(得分:0)
您自己的解决方案很好,它可以正常工作,无需触及PHP代码。
但是,对于我的脚本,我采用了不同的方法:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /processUrl.php [NC, L]
通过这种方式,所有(非Foud)传入请求全部重定向到 processUrl.php ,其中有如下代码:
$uri = (object) parse_url( $_SERVER['REQUEST_URI'] );
$uri->thread = explode( '/', substr($uri->path, 1) );
if( 'system' == $uri->thread[0] )
{
$_GET['id'] = $uri->thread[1];
$_GET['step'] = $uri->thread[2];
include( 'system.php' );
}
elseif( 'browse' == $uri->thread[0] )
{
// Other condition here
}
elseif( isset( $uri->query ) )
{
// Process ORIGINAL $_GET
}
else
{
include( 'Your404NotFoundPage.php' );
}
由于以下原因,我更喜欢上述方法: