Php htaccess重写-忽略规则?

Php htaccess重写-忽略规则?,php,apache,.htaccess,mod-rewrite,Php,Apache,.htaccess,Mod Rewrite,因此,我的系统上有一个API,运行在域“system.com”上,API运行在“API.system.com”上,但托管在同一台服务器上 my.htaccess的目标是将包含“api.system.com”的所有调用重定向到我的api文件夹,并将所有其他调用重定向到我的主站点 如果没有请求特定的api(请求URI为空),则应重定向到api/apidocs.php以显示apidocs 问题是,即使我转到一个有效的url,它也会将我重定向到api/apidocs.php 访问代码: RewriteE

因此,我的系统上有一个API,运行在域“system.com”上,API运行在“API.system.com”上,但托管在同一台服务器上

my.htaccess的目标是将包含“api.system.com”的所有调用重定向到我的api文件夹,并将所有其他调用重定向到我的主站点

如果没有请求特定的api(请求URI为空),则应重定向到api/apidocs.php以显示apidocs

问题是,即使我转到一个有效的url,它也会将我重定向到api/apidocs.php

访问代码:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^api.system.com
RewriteCond %{REQUEST_URI} json
RewriteRule (.+)\.json$ api/$1.php?type=json [QSA,L]

RewriteCond %{HTTP_HOST} ^api.system.com
RewriteCond %{REQUEST_URI} xml
RewriteRule (.+)\.xml$ api/$1.php?type=xml [QSA,L]

RewriteCond %{HTTP_HOST} ^api.system.com
RewriteCond %{REQUEST_URI} /
RewriteRule ^(.+)$ api/apidocs.php [L]

RewriteCond %{HTTP_HOST} ^system.com
RewriteRule ^(.+)$ index.php [QSA,L]
我曾经对它进行过测试,代码在那里工作

我尝试在api/apidocs.php上输出$_服务器变量,在那里我得到了这些(奇怪的)变量:

[SCRIPT_FILENAME] => C:/wamp/www/mysite/api/apidocs.php
[REDIRECT_QUERY_STRING] => type=json
[REDIRECT_URL] => /api/login.php
重定向url和脚本文件名如何不相同?

使用此选项进行调试。也许你能看到失败的地方