0

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

现在,www.mysite.com/proxy/?folder/page.html在我的服务器上请求一个 url 将返回页面www.theirsite.com/folder/page.html

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

现在我想改变我的脚本,这样我就不再需要?了。但是,该 urlwww.mysite.com/proxy/folder/page.html会导致一个 HTTP 请求page.html,该请求在我的服务器上不存在。

这不是我想要的。我需要index.php被加载,所以它可以返回页面www.theirsite.com/folder/page.html。为此,我想我需要使用 Apache 的 mod_rewrite,它与我的 WordPress 安装一起使用。

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

4

2 回答 2

0
RewriteEngine on
RewriteRule   ^/$  /index.php  [R]
于 2013-04-22T04:25:05.860 回答
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>

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

于 2013-04-22T04:44:22.897 回答