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