用mod_rewrite清理网址

时间:2012-09-06 15:58:11

标签: .htaccess url mod-rewrite

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

  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]

正如stackoverflow中所建议的,我将以下rewriterule添加到上面的文件

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

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

2 个答案:

答案 0 :(得分:0)

您应该将最后一个斜杠设为可选:

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

答案 1 :(得分:0)

在某些服务器上,你不能在RewriteRule中使用斜杠(我有同样的问题)。要检查这一点,请尝试以下作为htaccess文件:


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

修改: 当然你的固定链接是www.myweb.com/itemdetail-111234