2013-10-29 121 views
-1

我对url重写根本不熟悉,所以我可能对于知道这些东西的人来说很简单的问题。 我有电子商务网站,目前项目的URL看起来像这样 www.blizuecomm.net/www/item.php?id=399 &项目名称 我得到这样的URL与分类页面,看起来像这样使用.htaccess的URL重写

上的代码 www.blizuecomm.net/www/ITEM-NAME :
<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.blizu ecomm.net/ITEM-NAME

回答

0

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

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] 
+0

感谢basicly它的工作原理,但我得到的结果是这样 –

+0

www.blizuecomm.net/www/id/ITEM-NAME? id = id&ITEM-NAME我错过了什么或应该在代码中搜索err?谢谢 –

+0

@sz_tech对不起,我在'%2'末尾留下了一个问号 –