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

Apache显示虚拟子目录并将参数传递给PHP脚本,php,apache,mod-rewrite,Php,Apache,Mod Rewrite,我的根目录包含一系列PHP文件:index.PHP、about.PHP等。每个文件都可以使用一个ID参数来定制页面上的一些变量,如联系电话号码、电子邮件地址等 如果访问者要访问(joebloggs是一个参数,而不是子目录),我希望它们与根目录中的index.php页面一起提供,但是要将joebloggs作为ID传递给index.php,然后定制页面。我不想为每个用户ID创建一个子目录,我宁愿在DB中维护这些信息,让PHP为我生成页面 此外,当用户导航到about.php页面时,我希望此ID被保留

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

如果访问者要访问(joebloggs是一个参数,而不是子目录),我希望它们与根目录中的index.php页面一起提供,但是要将joebloggs作为ID传递给index.php,然后定制页面。我不想为每个用户ID创建一个子目录,我宁愿在DB中维护这些信息,让PHP为我生成页面

此外,当用户导航到about.php页面时,我希望此ID被保留,然后自定义about页面,即指向“about”的链接在URL中维护ID参数:

我脑子里已经有了一个大概的想法如何做到这一点,并且一直在阅读mod_rewrite,但在将各种解决方案拼凑在一起方面运气不太好


任何指点或帮助都将不胜感激。

尝试以下方法:

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]

我应该做这项工作。在我的服务器上进行了测试。

谢谢-太棒了。但是,我必须删除页面名称前的前导/才能在我的服务器上工作。这就是mod_rewrite的问题所在,它可以在不同的设置下以不同的方式工作;)太好了,你成功了;)