Apache呈现虚拟子目录并将参数传递给PHP脚本

时间:2012-04-28 09:40:25

标签: php apache mod-rewrite

我的根目录包含一系列PHP文件:index.php,about.php等。每个文件都可以使用ID参数来自定义页面上的一些变量,例如联系电话号码,电子邮件地址等。

如果访问者要访问http://myserver/joebloggs(joebloggs是一个参数,而不是子目录),我希望它们可以通过根目录中的index.php页面提供,但是要将joebloggs传递给index.php作为ID然后自定义页面。我不想为每个用户ID创建一个子目录,我宁愿在数据库中维护这些信息,并让PHP为我生成页面。

此外,当用户然后导航到about.php页面时,我希望这个ID被转移,然后自定义about页面,即指向“about”的链接维护URL中的ID参数: http://myserver/joebloggs/about/

我脑子里有一个粗略的想法,如何做到这一点,并且已经阅读了mod_rewrite,但在拼凑各种解决方案方面并没有太多运气。

非常感谢任何指针或帮助。

1 个答案:

答案 0 :(得分:1)

尝试这样的事情:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} \/(.+?)\/about
RewriteRule . /about.php?p1=%1 [L]

RewriteCond %{REQUEST_URI} \/.*?
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*?)$ /index.php?p1=$1 [L]

应该做的工作。在我的服务器上测试过它。