Apache 用插入符号重写COND无效
下面是我正在编写的.htaccess文件:Apache 用插入符号重写COND无效,apache,.htaccess,Apache,.htaccess,下面是我正在编写的.htaccess文件: RewriteEngine On RewriteCond %{REQUEST_FILENAME} ^api RewriteRule (.+) test/$1.php [L] 现在,如果我进入我的浏览器并输入/api/asdf,我不会得到/test/api/asdf。如果我删除插入符号,它将按预期工作。同样有趣的是,如果我在浏览器中键入/bapi/asdf,它将不起作用,因为没有插入符号,这似乎是向后的 我做错什么了吗?如果插入符号不起作用,如何匹配R
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} ^api
RewriteRule (.+) test/$1.php [L]
现在,如果我进入我的浏览器并输入/api/asdf
,我不会得到/test/api/asdf
。如果我删除插入符号,它将按预期工作。同样有趣的是,如果我在浏览器中键入/bapi/asdf
,它将不起作用,因为没有插入符号,这似乎是向后的
我做错什么了吗?如果插入符号不起作用,如何匹配
REQUEST\u FILENAME
的开头?变量%{REQUEST\u FILENAME}
不会以api
开头。因此,^api
表达式将永远不匹配。请求文件名是请求应映射到的本地文件系统路径
您可以尝试以下方法:
RewriteEngine On
RewriteRule ^(api.+) test/$1.php [L]
它匹配以
/api
开头的请求。遗憾的是,api只是一个虚构的名称。本地文件系统路径与该路径匹配,因此假设根目录中有一个api目录。@tau然后在^
之后需要一个/
。假设您在linux或Mac上,文件系统路径可能以/
开头,我刚刚尝试过,但不管是否使用正斜杠,它都不起作用。我尝试了^/api和^/api/两种方法,但都不起作用。