我的环境是Apache,DB是mySQL,语言是PHP。
我需要创建一个拦截请求的中间层并检查"http://www.something.com/apple/ipad-2-cases/"
等网址,然后查找数据库以及apple
和ipad-2-cases
都有一个计数器如下:
产品表
品牌表
并将网址转换为"http://www.something.com/products.php?b_id=2&p_id=1"
,我可以抓取b_id
和p_id
以显示相应的产品信息。
它基本上看起来像Joomla
中实现的方式。您可以通过键入额外的字段来定义自己的用户友好网址,否则它会实现默认设置。
由于我是PHP的新手,我不太清楚如何实现这一目标。在asp.net中,我一直在使用URL-Writer库,它使用HttpHandlers
和HttpModules
拦截当前请求并进行适当的替换。
是否有任何图书馆或其他东西可以帮助我解决这个问题?或者我是否需要使用.htaccess
(我知道我需要打开mod_urlwrite
上的.htaccess
)
非常感谢。
答案 0 :(得分:2)
使用名称而不是ID。
在.htaccess中使用mod_rewrite来自
http://www.something.com/apple/ipad-2-cases/
到
http://www.something.com/products.php?b=apple&p=ipad-2-cases
并在products.php
中找到相关的ID 修改强>
在.htaccess中创建一个这样的规则:
RewriteRule ^[^/]+/([A-Za-z_-]+)/([A-Za-z_-]+)$ products.php?b=$1&p=$2