1

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

我想变身

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

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

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

到目前为止它不起作用,经过无数小时的研究,我想我会寻求一点帮助。

我无耻地重用了这里提供的一些配置

这是我的 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");
}
?>
4

0 回答 0