我想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正在执行的操作。