htaccess,url别名,mod_rewrite。从网址中排除ID但需要它

时间:2012-12-11 12:55:55

标签: php .htaccess mod-rewrite url-rewriting

你好我遇到的问题就是这个,我有一个登陆页面(event.php),显示来自我的数据库的事件。

其他字段中的每个事件都有'category','title','id'。我正在尝试为我的网站创建一个看起来像http://domain.com/event/category/title的干净网址,但问题是某些活动可能会有相同的标题,因为它们可能每周重复一次,但是他们确实有唯一的ID,我就是用于获取特定事件。

我的问题是,我怎么能改变像:

http://www.domain.com/event.php?cat=rock&title=Great-gig&id=145

成:

http://www.domain.com/event/rock/Great-gig

请记住,我确实需要id的值,但我不希望它以某种方式显示在干净的URL上...

我可以使用htaccess创建干净的网址,但我无法弄清楚如何排除ID被忽略。

谢谢。

3 个答案:

答案 0 :(得分:1)

您只有两个选项:

  1. 制作一个别名,例如,如果12月份的事件,Great-gig-Dec,如果是1月份,那么将使用此值作为您的唯一ID

  2. 仅加载下一个事件或最近的事件,具体取决于您的网站结构。这样,如果有多个Great-gig,那么您将获得最新或下一个,因此您可以构建您的网址,如http://www.domain.com/next-events/rock/Great-gighttp://www.domain.com/latest-events/rock/Great-gig。所以在这里你知道要使用哪一行,而它仍然看起来像一个好网址。

  3. 格言

答案 1 :(得分:0)

无论如何,您无法将其排除并使用它。您必须传递它,或使用标题查找事件。

答案 2 :(得分:0)

您需要在您的文件夹中为htaccess写一个.htaccess文件

在那里写这段代码

RewriteEngine On
RewriteBase /foldername/  //for localhost
RewriteBase /              // for online

RewriteRule ^event/(.+)/(.+)/?$ event.php?cat=$1&title=$2 [L,QSA]