重写规则不重定向到指定文件

Rewrite Rule Not Redirecting To The Specified File

最近我开始使用 .htaccess 文件将 API 调用重定向到特定文件。但是,即使我的 .htaccess 文件正在运行(仅在文件顶部测试它并出现“内部服务器错误”),我的规则也不起作用。相反,Index.php 总是被读取。目标是,每当 url 以“myOwnAPI/”结尾时,它会将您带到文件“somefile.php”。所有文件(index.php、somefile.php、.htaccess)都放在同一目录中。

.htaccess 文件只包含一个规则。

请帮忙。

httpd.conf 文件

<Directory />
    AllowOverride All
    Require all denied
</Directory>

AllowOverride All

.htaccess 文件

RewriteEngine on

RewriteRule   ^myOwnAPI/?$   somefile.php  [NC,L]

每个 url 都以“/”开头,所以

RewriteRule   ^myOwnAPI/?$   somefile.php  [NC,L]

永远不会匹配。 改成

RewriteRule   ^/myOwnAPI/?   /somefile.php  [NC,L]

此外,如果您需要将参数“传递”给新的url(标志QSA),请阅读官方文档https://httpd.apache.org/docs/2.4/rewrite/flags.html