0

我的网站使用类似example.de/user1or的 URL example.de/project33,可以用 .htaccess 文件重写。

斜线后面的字符串由用户选择。

我的问题是,有些 URL 是用户个人资料链接,应该重写profile.php?id=...,有些 URL 是项目链接,应该重写project.php...

你怎么能处理它?

我想到了一个 HTTP 标头,它会触发一个 rewriteCondition(如 -l、-f、-d 等......)。

4

2 回答 2

1

由于您无法仅通过查看 URL 来确定适当的目标,因此您将需要一个调度程序样式的脚本,将所有这些请求重定向到该脚本,然后该脚本决定最终重定向到profile.phpor project.php。否则不会发生mod_rewrite,因为它不知道您的自定义 URL 数据库。

于 2012-08-31T08:21:15.030 回答
0

如果不实际测试斜杠后面的字符串是用户还是项目,您需要其他东西来让 mod_rewrite 知道哪个是哪个,因为您可能拥有与项目名称相同的用户名。就像是:

http://example.de/u/user1
http://example.de/p/project33

因此,规则将确保与uor p(或您选择的任何内容相匹配:

RewriteRule ^u/(.*)$ /profile.php?id=$1 [L]
RewriteRule ^p/(.*)$ /project.php?id=$1 [L]
于 2012-08-31T08:34:45.453 回答