2012-09-06 147 views
0

我在stackoverflow上找到了mod_rewrite上的几个主题,但没有一个他们解决了我的问题。我也试过在这个网站上的教程http://edrackham.com/apache/beginners-mod_rewrite-tutorial/ 我一直在尝试使用mod_rewrite来获得干净的网址。例如:干净的网址与mod_rewrite

www.myweb.com/itemdetail.php?itemid=111234 

www.myweb.com/itemdetail/111234 or 
    www.myweb.com/itemdetail/iphone 

这是我的.htaccess文件的内容。

RewriteEngine On 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %(REQUEST_FILENAME) !-l 
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] 

如计算器的建议,我添加以下重写规则上面文件

RewriteRule ^itemdetail/([0-9]+)/$ itemdetail.php?itemid=$1 [NC,L] 

但这并没有解决我的问题。任何建议表示赞赏。

回答

0

你应该把最后一个斜线可选:

RewriteRule ^itemdetail/([0-9]+)/?$ itemdetail.php?itemid=$1 [NC,L] 
+0

这并没有解决问题。任何其他建议。 – Hari

+0

你把它放在哪里?在htaccess的结尾?如果是的话,这是不正常的,因为你的其他规则与它冲突,把它放在它之前(在'RewriteEngine on'之后) – Oussama

+0

也试过了。它不起作用。 – Hari

0

在某些服务器上,你不能在一个重写规则(我有同样的问题)使用斜线。要检查这尝试以下为您的htaccess文件:

 

    RewriteEngine on 
    RewriteRule ^itemdetail-([0-9]+)/?$ itemdetail.php?itemid=$1 
 

编辑: 当然您的永久链接将www.myweb.com/itemdetail-111234

+0

它没有工作。任何其他建议。 – Hari

+0

尝试在phpinfo()输出中搜索'mod_rewrite'。 – rosetree