条件.htaccess重定向 - 根据网址重定向到两个不同的页面

时间:2012-06-05 21:29:00

标签: php .htaccess redirect conditional

我的网站功能有点像9gag或damnlol等。 当用户访问项目页面时,例如:site.com/104-funny-thing,重写规则重定向到view.php?id = 104-funny-thing。在第一个' - '之后,URL被删除了所有内容。所以我们只剩下id,在这种情况下:104,查询得到项目。

这是规则:

RewriteRule ^([A-Za-z0-9-]+)$ view.php?id=$1

我想要的是,也可以使用相同的URL格式打开用户个人资料。例如:site.com/salman,此URL应该打开profile.php?username = salman。

我想通过PHP做到这一点。我可以在哪里使用相同的文件view.php。完成URL的解析后,如果我得到一个数值,我会包含item.php页面并查询并相应地显示数据。如果它不是数字,那么我可以包括profile.php页面并显示配置文件。理论上这应该完美无缺,但我想尝试的是,如果有一种方法可以直接使用.htaccess重定向,我宁愿使用该选项,因为之前的选项需要额外的工作来解决一些问题,解决方案原因引起的。

擅长htaccess(正则表达式代码?)的人可能能够提供解决方案。以下是一些进一步的解释:

  • 用户名可以包含数字,但不仅包含数字
  • 用户名网址不能包含“ - ”
  • 项目ID不能包含字母
  • 网址104-funny,104-和104,都适用于view.php

感谢您的高级帮助!

1 个答案:

答案 0 :(得分:2)

#article urls
RewriteRule ^([0-9]+)(-.*)?$ view.php?id=$1

#profile urls.
RewriteRule ^([A-Za-z0-9]+)$ profile.php?username=$1
相关问题