htaccess全部redirect到一个文件(本地主机除外)

我想redirect所有stream量到一个单一的.php网关文件,这个文件将执行身份validation,并使用ajax拉取请求的文件。

所以我需要一个像这样的stream.htaccess

if external request for any file redirect (or rewrite) to /gateway.php 

gateway.php然后需要能够访问该文件。

这是最好的想出来的是:

 RewriteEngine On RewriteBase / RewriteCond %{REMOTE_HOST} !^127\.0\.0\.1 RewriteCond %{REQUEST_URI} !/gateway\.php$ RewriteRule .* http://www.website.com/gateway.php?req=%{REQUEST_URI} [R=302,L] 

这是工作,但是当gateway.php上的ajax尝试从另一个页面获取内容时,它从gateway.php获取内容(因为redirect)。 我需要以某种方式添加一个exception!

任何帮助将不胜感激!

你不需要那里的RewriteBase,试试这个:

 RewriteEngine on RewriteRule ^/gateway\.php$ - [L] RewriteCond %{REMOTE_HOST} ^127\.0\.0\.1 RewriteRule ^(.*)$ - [L] RewriteRule ^(.*)$ http://www.website.com/gateway.php?req=%{REQUEST_URI} [R=302,L] 

首先你明确的说,如果gateway.php被请求,停止。 然后你说,如果是从本地主机只做url,否则做redirect。 您可能会遇到某种内部redirect机制,您可能需要快速设置RewriteLog和RewriteLogLevel来debuggingApache正在执行的操作。