我总是有一个相当标准的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
,但仍会像以前一样在文件系统中占据相同的位置。
答案 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]