如何在目录中的任何HTTP请求中加载我的PHP文件?

时间:2013-04-22 03:36:26

标签: php apache mod-rewrite proxy

我有一个代理我已经用PHP编写了一段时间。

现在,在我的服务器上请求www.mysite.com/proxy/?folder/page.html之类的网址会返回www.theirsite.com/folder/page.html页面。

我基本上让我的index.php文件使用/proxy/?之后的所有内容作为www.theirsite.com的请求URI。任何图像都会复制到文件夹/proxy/images/,并且<img>标记的src属性会相应更改。这一切都很有效。

现在我想更改我的脚本,以便我不再需要?。但是,网址www.mysite.com/proxy/folder/page.html会导致向page.html发送HTTP请求,该请求在我的服务器上不存在。

这不是我想要的。我需要加载index.php,因此它可以在www.theirsite.com/folder/page.html返回页面。为了实现这一点,我想我需要使用Apache的mod_rewrite,它正在使用我的WordPress安装。

我的.htaccess文件中需要什么才能正确执行此操作,同时仍允许访问/proxy/images/目录中存在的文件?这会影响$_SERVER['REQUEST_URI']吗?

2 个答案:

答案 0 :(得分:0)

RewriteEngine on
RewriteRule   ^/$  /index.php  [R]

答案 1 :(得分:0)

好吧,我按照我想要的方式工作了。这是我的.htaccess文件的全部内容:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /proxy/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /proxy/index.php [L]
</IfModule>

现在,对于网址www.mysite.com/proxy/folder/page.html,我会加载index.php$_SERVER['REQUEST_URI']会返回/proxy/folder/page.html。实际存在于/proxy/文件夹或任何子文件夹中的文件不会重写为index.php,这就是我想要的。