-1

我根本不熟悉 url 重写,所以对于知道这些东西的人来说,我可能有一个简单的问题。我有电子商务网站,目前项目 url 看起来像这样 www.blizuecomm.net/www/item.php?id=399&ITEM-NAME 我在类别页面上得到这种带有代码的 URL,看起来像这样

<a href="item.php?id=<?=$values[$i]['gitemid']?>&amp;<?=cleanString($values[$i]['gname'])?>

我使用此代码得到干净的字符串

<?
function cleanString($string, $separator = '-'){
$accents = array('Š' => 'S', 'š' => 's', '?' => 'Dj', 'ð' => 'dj','Ž' => 'Z', 'ž' => 'z', 'È' => 'C' , 'è' => 'c', 'Æ' => 'C' , 'æ' => 'c');
$string = strtr($string, $accents);
$string = strtoupper($string);
$string = preg_replace('/[^a-zA-Z0-9\s]/', '', $string);
$string = preg_replace('{ +}', ' ', $string);
$string = trim($string);
$string = str_replace(' ', $separator, $string);
return $string;
}
?>

我应该在 .htaccess 文件中写什么以获得如下所示的 ULR:www.blizuecomm.net/www/ITEM-NAME 或 www.blizuecomm.net/ITEM-NAME

4

1 回答 1

0

最简单的做法可能是让它看起来像:www.blizuecomm.net/www/id/ITEM-NAME因为否则您的item.php脚本将不会获得 ID。这将要求您将其添加到文件夹中的 htaccess 文件www

RewriteEngine On
RewriteBase /www/

RewriteCond %{THE_REQUEST} \ /www/item\.php\?id=([0-9]+)&([^&\ ]+)
RewriteRule ^ %1/%2? [L,R=301]

RewriteRule ^([0-9]+)/(.*)$ item.php?id=$1&$2 [L,QSA,NE]
于 2013-10-29T10:32:13.190 回答