.htaccess如何更改$ _SERVER [REQUEST_URI]?

时间:2013-09-14 18:35:15

标签: php .htaccess mod-rewrite

我在http://ex.com/web2/有一个网站,这是我服务器中的真实路径,但我希望访问者也可以通过网址http://ex.com/web3/访问该网站(不更改网址上的网址)浏览器),所以在环顾四周(并请求帮助)后,我将以下内容添加到.htaccess

<IfModule mod_rewrite.c>
    Options +FollowSymLinks -MultiViews
    RewriteEngine On
    RewriteBase /
    RewriteRule ^web3/?$ /web2/ [L,NC]
    RewriteRule ^web3/(.+)$ /web2/$1 [L,NC]
</IfModule>

不改变浏览器URL的“无声”重定向工作正常,但在PHP print $_SERVER[REQUEST_URI]中我得到了用户放置在浏览器上的URL /web3/而不是/web2/ }。

有没有办法.htaccess也可以“伪造”发送到PHP var的路径? (有人告诉我这很难甚至不可能。)

谢谢。

1 个答案:

答案 0 :(得分:2)

如果您加载了mod_proxy,则可以在内部代理请求。这将改变REQUEST_URI服务器变量,但它有点类似于实现它的方式。如果这一切都发生在php脚本中会更有效率。

RewriteRule ^web3/?$ /web2/ [L,NC,P]
RewriteRule ^web3/(.+)$ /web2/$1 [L,NC,P]

只需要将P标志添加到方括号中。