将相同的URL结构重写为两个不同的PHP脚本

时间:2012-08-31 08:05:23

标签: php .htaccess mod-rewrite url-rewriting http-headers

我的网站使用example.de/user1example.de/project33等网址,可以通过.htaccess文件重写。

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

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

你怎么处理它?<​​/ p>

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

如果没有实际测试斜杠之后的字符串是用户还是项目,你还需要其他东西让mod_rewrite知道哪个是哪个,因为你可能有一个与项目名称相同的用户名。类似的东西:

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

因此规则将确保与up(或您选择制作它们的任何内容)匹配:

RewriteRule ^u/(.*)$ /profile.php?id=$1 [L]
RewriteRule ^p/(.*)$ /project.php?id=$1 [L]