我在Laravel Lumen项目上工作并发出一些奇怪的事情。我在一些路线上创建了一个安静的API。如果我直接从我的浏览器调用API,一切似乎都有效。但是,如果我使用调试接口的iPhone客户端应用程序,则会添加一个额外的斜杠。
API目前位于:
http://.../public/index.php/api/fever?api&items
每当使用iPhone应用程序或调试工具时,都会要求以下位置:
http://.../public/index.php/api/fever/?api&items
这导致找不到'页面。错误。是否可以使用apache htaccess重写规则将所有 api / fever /?重定向到 api / fever? ??
htaccess文件必须位于公共文件夹中,该文件夹位于主网站下的子文件夹下。
提前致谢
当前的htaccess
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*[^/])$ /$1/ [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
答案 0 :(得分:0)
您可以在网站根目录.htaccess:
的顶部尝试此重定向规则<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{THE_REQUEST} !.*/api/fever/ [NC]
RewriteRule ^(.*[^/])$ /$1/ [L,R=301]
RewriteCond %{THE_REQUEST} \s/(.*api/fever/\S*)\s [NC]
RewriteRule ^ /%1 [L,R=301,NC]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>