Apache RewriteMap无法正常工作

时间:2013-04-15 16:49:33

标签: php regex apache mod-rewrite rewritemap

我正在尝试使用apache RewriteMap重写我的一些网址。

我想改造

www.mywebsite.com/?p=category&id=xxxx

www.mywebsite.com/category/channel/program/personnality

我在php脚本中使用id从db中检索必要的变量。

到目前为止,它无法正常工作,经过无数个小时的研究后,我想我会请求一些帮助。

我无耻地重复使用了here

提供的一些配置

这是我的httpd.conf

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteMap redirects prg:/var/www/redirects/redirects.php
RewriteCond ${redirects:%{HTTP_HOST}%{REQUEST_URI}} !^GOOD$
RewriteRule ^/(.*)$ ${redirects:%{HTTP_HOST}%{REQUEST_URI}} [R]
</IfModule>

和我的redirects.php脚本,自己正常工作

#!/usr/bin/php
<?php
set_time_limit (0);
$input = fopen ('php://stdin', 'r');
$output = fopen ('php://stdout', 'w');

while (1) {
$original = strtolower (trim (fgets ($input)));

$request = array();
if (preg_match("/[0-9]+/", $original, $request) == 0)
fwrite ($output, "GOOD\n");

$con = mysqli_connect("localhost","user","password","db");

if (mysqli_connect_errno($con))
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$r = mysqli_query($con, "SELECT media.me_libelle, projet.pro_libelle,  personnalite.per_prenom,personnalite.per_nom FROM image, media, projet, image_personnalite,  personnalite
                              WHERE image_personnalite.per_id=personnalite.per_id and image.pro_id=projet.pro_id and projet.me_id=media.me_id  and image.img_id=".$request[0]." and image_personnalite.img_id=".$request[0]);


if ($r = mysqli_fetch_array($r))
{
$i = 0;
while (isset($r[$i]) && !empty($r[$i]))
  {
    $r[$i] = preg_replace("/\s/", "-", $r[$i]);
    $i++;
  }
$url= strtolower("www.mywebsite.com/"."category/".$r[0]."/".$r[1]."/".$r[2]."-".$r[3]);
}

mysqli_close($con);
fwrite ($output, "http://".$url."\n");
}
?>

0 个答案:

没有答案