【问题标题】:Why am I getting a 404 server error htaccess rewrite rule?为什么我收到 404 服务器错误 htaccess 重写规则?
【发布时间】:2018-04-29 23:22:44
【问题描述】:

我正在尝试添加一个简单的重写规则,以便发送到 /api/v1/ 的任何请求都将由 /api/v1/api.php 处理

目前,当我尝试运行示例方法 /api/v1/example 时,它​​会在我身上执行 404

我正在关注这个tutorial,但有点困惑将我的重写规则放在我当前的 htaccess 文件中的哪个位置。

到目前为止,我的 htaccess 文件中的内容是:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteRule ^api/v1/(.*)$ api/v1/api.php?request=$1 [QSA,NC,L] # 404 
</IfModule>
# END WordPress

我试过wordpress的方法,但也不管用

 add_rewrite_rule('^api/v1/(.*)$','api/v1/api.php?request=$1','top');

任何帮助将不胜感激。

干杯:)

【问题讨论】:

    标签: .htaccess


    【解决方案1】:

    我也在做类似的事情 - 所以在我的 /path/to/doc/root/api/v1/.htaccess 我有

    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /api/v1/index.php [L]
    

    这只会捕获/api/v1/ 或更低目录中的请求,因此我的其他内容仍会产生正常的 404 错误等。

    【讨论】:

    • 不,这最终给了我一个禁止的错误:/
    • @MrJoshFisher - 在我的系统上工作,我已经在全球范围内启用了mod_rewrite。 Ubuntu 16.04 服务器上的 Apache 2.4.18...
    • 我相信我的运行方式与我的根目录中的主 mod_rewrite 相同,但 /api/v1/ 中的 htaccess 导致了禁止错误:/
    • @MrJoshFisher 您的主 htaccess 中的某些内容会导致冲突吗?服务器日志中显示的错误是什么?
    • 目前它的 "GET /api/v1/ HTTP/1.0" 403 874" - api.fisherinc.co.uk/api/v1 如果我将 index.php 文件放入其中进行排序但只是给出一个白屏并且没有重定向到 api.php 文件:/
    猜你喜欢
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-01
    • 2016-09-14
    • 1970-01-01
    • 2014-02-06
    相关资源
    最近更新 更多