我一直在试图隐藏网址中的文件夹名称,而我却惨遭失败。我的网址为0.0.0.0/project/api/api/foo
。你可以看到有两个api
,我只想展示一个。我一直在使用的.htaccess
驻留在目录的根目录下,如下所示:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /api/api/$1 [L]
</IfModule>
我尝试了几种不同的变体,但没有任何效果。第一个api
是目录名,第二个api
是Laravel为路由输入的内容,而不是目录。同时拥有两者都很难看,那么如何删除第一个api
?
答案 0 :(得分:1)
要让服务器接受您的请求,您可以使用:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^project/api/(.*)$ /project/api/api/$1 [L]
</IfModule>
此规则会使
一样YOURDOMAIN/project/api/SOMETHING
的每个请求看起来(在您的服务器中),就像实际请求是YOURDOMAIN/project/api/api/SOMETHING
但是 - 您需要确保您的网站/应用程序中的链接正确的节点。
答案 1 :(得分:1)
没有必要弄乱.htaccess。您只需将路由文件更新为不包含第二个api
路径。
您可以删除您在路由上手动定义的前导api
段,也可以删除Laravel默认添加到{{1}中所有路由的自动api
前缀文件。
要删除默认前缀,请打开routes/api.php
文件,转到底部的app/Providers/RouteServiceProvider.php
方法,然后移除mapApiRoutes()
行。