我的网站使用类似example.de/user1
or的 URL example.de/project33
,可以用 .htaccess 文件重写。
斜线后面的字符串由用户选择。
我的问题是,有些 URL 是用户个人资料链接,应该重写profile.php?id=...
,有些 URL 是项目链接,应该重写project.php...
你怎么能处理它?
我想到了一个 HTTP 标头,它会触发一个 rewriteCondition(如 -l、-f、-d 等......)。
我的网站使用类似example.de/user1
or的 URL example.de/project33
,可以用 .htaccess 文件重写。
斜线后面的字符串由用户选择。
我的问题是,有些 URL 是用户个人资料链接,应该重写profile.php?id=...
,有些 URL 是项目链接,应该重写project.php...
你怎么能处理它?
我想到了一个 HTTP 标头,它会触发一个 rewriteCondition(如 -l、-f、-d 等......)。
由于您无法仅通过查看 URL 来确定适当的目标,因此您将需要一个调度程序样式的脚本,将所有这些请求重定向到该脚本,然后该脚本决定最终重定向到profile.php
or project.php
。否则不会发生mod_rewrite
,因为它不知道您的自定义 URL 数据库。
如果不实际测试斜杠后面的字符串是用户还是项目,您需要其他东西来让 mod_rewrite 知道哪个是哪个,因为您可能拥有与项目名称相同的用户名。就像是:
http://example.de/u/user1
http://example.de/p/project33
因此,规则将确保与u
or p
(或您选择的任何内容相匹配:
RewriteRule ^u/(.*)$ /profile.php?id=$1 [L]
RewriteRule ^p/(.*)$ /project.php?id=$1 [L]