我在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]
但这并没有解决我的问题。任何建议表示赞赏。
答案 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