apache mod_rewrite用于index.php的用户URL

时间:2014-12-30 18:45:43

标签: apache mod-rewrite

我总是有一个相当标准的apache配置。现在我们正在引入一个新概念,即用户会话特定的URL,它将改变一些事情。基本上我们有一个DocumentRoot和任何东西,如:

http://example.com/会在DocumentRoot指令中点击index.html。

但现在我希望能够做类似

的事情

http://example.com/uid/5/ http://example.com/uid/2

那些应该仍然在已设置的DocumentRoot中命中index.html。 URL主要用于服务器端和客户端脚本,以便能够执行自己的任务。

在Apache中处理此问题的最佳方法是什么?这里甚至需要mod_rewrite吗?

我还需要能够支持现有路径,例如:

http://example.com/foo/bar/something.php将被重写为http://example.com/uid/3/foo/bar/something.php,但仍会像以前一样在文件系统中占据相同的位置。

1 个答案:

答案 0 :(得分:1)

您可以将此代码放入htaccess

中来使用mod_rewrite
RewriteEngine On
RewriteRule ^uid/([1-9][0-9]*)/(.+)$ /$2?uid=$1 [L]

例:
http://example.com/foo/bar/something.php - >不变
http://example.com/uid/3/foo/bar/something.php - >改写为/foo/bar/something.php?uid=3


编辑:未附加uid

RewriteEngine On
RewriteRule ^uid/[1-9][0-9]*/(.+)$ /$1 [L]