2012-05-19 75 views
1

我有以下URL结构:变化的动态网址与的.htaccess

www.mysite.com/temporary/articles.php?artid=1 

我想与

www.mysite.com/temporary/articles/article-title-here. 

任何改变它可以告诉我,我该怎么办呢?

我也有它的两个varialbes链接:我正努力使它

www.mysite.com/temporary/products.php?catid=1&productid=1 

www.mysite.com/temporary/products.php/category-name/product-name 

在此先感谢。

卓然

回答

0

要做到这一点,你会需要某种类型的脚本,它可以映射文章/分类/产品名称的ID。你是你自己的,只要写这个剧本,但它可以沿着这个线的东西:

  1. 如果有一个查询字符串变量article-name,然后取它的价值,查找数据库(或任何存储您正在使用)并查看文章ID是什么,然后加载/temporary/articles.php?artid=ID,其中ID是给定标题的ID。
  2. 如果存在查询字符串变量product-name和/或category-name,请查看数据库以查看这些名称的类别和产品ID,然后使用适当的ID加载/temporary/products.php?catid=1&productid=1
  3. 否则,这样做将返回404条

相关的重写规则来做到这一点假设你写这个PHP脚本是在/my-controller.php

RewriteRule ^temporary/articles/(.+)$ /my-controller.php?article-name=$1 [L] 
RewriteRule ^temporary/products.php/([^/]+)/(.+) /my-controller.php?category-name=$1&product-name=$2 

所以,如果有人请求http://www.mysite.com/temporary/articles/foo-article,它将被重写为/my-controller.php?article-name=foo-article,并且当有人请求http://www.mysite.com/temporary/products.php/bars/foo-product时,它将被重写为/my-controller.php?category-name=bars&product-name=foo-product,它取决于您编写的脚本以执行必要的ID查找,然后将其传递给articles.php或products.php脚本。