我的环境是Apache,DB是mySQL,语言是PHP。
我需要的是创建一个中间层来拦截请求并检查 url "http://www.something.com/apple/ipad-2-cases/"
,然后查找数据库,其中 apple
和 ipad-2-cases
都有一个计数器,如下所示:
产品目录
- p_id --> 1
- p_name --> "iPad">
- p_custom_url -->"iPad-2 保护套">
品牌表
- b_id --> 2
- b_name -->"苹果">
- b_custom_url -->"苹果">
并将 URL 转换为 "http://www.something.com/products.php?b_id=2&p_id=1"
,我可以从中获取b_id
并p_id
以显示适当的产品信息。
它基本上看起来像在Joomla
中实现的方式。您可以通过键入额外的字段来定义自己的用户友好 URL,否则它无论如何都会实现默认设置。
由于我是PHP的新手,我不太知道如何做到这一点。asp.net 我一直在使用 URL-Writer 库,它使用 HttpHandlers
和 HttpModules
来拦截当前请求并进行适当的替换。
有没有图书馆或其他东西可以帮助我解决这个问题?还是我需要使用.htaccess
(我知道我需要打开.htaccess
的mod_urlwrite
(
多谢。
id,而是使用名称。
在 .htaccess 中使用 mod_rewrite 从
http://www.something.com/apple/ipad-2-cases/
自
http://www.something.com/products.php?b=apple&p=ipad-2-cases
并在产品内找到相关 ID.php
编辑
在 .htaccess 中创建如下规则:
RewriteRule ^[^/]+/([A-Za-z_-]+)/([A-Za-z_-]+)$ products.php?b=$1&p=$2