您好我正在尝试从网址重写页面发送数据,但不幸的是,它的工作原理只是让我回到主页或错误页面。模板& urlrewrite for rmbitter 就是我想要做的。目前domain.com/rmbitter.php加载完美文件。我在域/ boothwall.html上有一个链接,该链接看起来像 domain.com/rmbitter.php?ulnk=$usr&slnk=$lnk rmbitter.tpl有$ _GET代码。我认为我的问题是重写它不允许传递变量。
使用.tpl的原因是因为页面具有所需的设计布局。如果我使用test.html页面构建一个启动的rmbitter.php文件,并使用该变量链接到rmbitter.php,它可以正常工作。
$inc = array(
'pictures' => 'icons.php',
'view_images' => 'templates/view_images.tpl',
'boothw' => 'templates/boothw.tpl',
'rmbitter' => 'templates/rmbitter.tpl'
);
//URL rewriting rules...
$rew = array(
'/view_images_public\/(.*)$/' => 'req=view_images&user=$1',
'/boothwall\.html$/' => 'req=boothw',
'/rmbitter\.php$/' => 'req=rmbitter'
);
url_rewrite.php
<?php
//get request
$url = $_SERVER['REQUEST_URI'];
if (strpos($url,'?PHPSESSID=')) $url = substr($url,0,strpos($url,'?PHPSESSID='));
while (strpos($url,'//') !== false) $url = str_replace('//','/',$url);
$url = substr($url,strlen(constant('dir')));
$url_array = explode('/', $url);
//make request string
$reqstr = '';
foreach ($url_array as $key => $value)
$reqstr .= '/'.$value;
$reqstr = substr($reqstr,1);
//other stuff
if (substr($reqstr,0,9) != 'index.php') {
$rewrite['/pages\/(.*)\.html$/'] = 'req=pages&id=$1';
$rewrite['/static\/(.*)\.html$/'] = 'req=static&id=$1';
$rewrite['/(.*)\.html$/'] = 'req=$1';
?>
的.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*) index.php [L]
</IfModule>
答案 0 :(得分:1)
我不是100%了解你的问题是什么,但所有与GET相关的mod_rewrite疾病的一般治疗方法是查询字符串附加(QSA)。
RewriteRule ^(.*) index.php [L, QSA]
如名称所示,它将任何传入的GET数据附加到新URL并将其传递给index.php。