0

我的网站功能有点像9gag或damnlol等,当用户访问一个item页面时,例如: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(正则表达式代码?)的人可能能够提供解决方案。这里有一些进一步的解释:

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

感谢您在高级方面的帮助!

4

1 回答 1

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

#profile urls.
RewriteRule ^([A-Za-z0-9]+)$ profile.php?username=$1
于 2012-06-06T10:08:27.257 回答