.htaccess中的以下脚本在localhost上正常工作,但在我将网站上传到服务器后无效。例如," http://ipaddress/mywebsite/api/"将我重定向到位于mywebsite目录中的api.php。
的.htaccess
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^api/^ api.php
</IfModule>
文件层次结构
root of apache
+--mywebsite
+--.htaccess
+--index.php
+--api.php
答案 0 :(得分:0)
由于结尾^
,您使用的规则无效。请改用:
RewriteRule ^api/?$ api.php
请注意,问号会使尾部斜杠成为可选项。如果您只想在斜杠出现时重写,请删除问号。
我还建议在规则中添加L
标记,以防您稍后添加其他规则:
RewriteRule ^api/?$ api.php [L]
更新:根据您的评论,将规则更改为以下内容,以便将api/*
传递给api.php
:
RewriteRule ^api api.php [L]
这会将api
,api/
和api/<anything>
传递给api.php
。您可以通过使用$_SERVER['REQUEST_URI']
获取URI来检索请求。