我知道这样的问题已经被回答过很多次了,但是这些答案都不适合我。
我有以下url http://dummy.com/api
访问我的根文件夹,我将有我的项目(Laravel项目)。
我正在部署到远程主机,因此我无法访问父目录。
我的项目(简单的Laravel项目)由很多文件夹组成,顺便说一下,这些文件夹应该放在父目录(app,bootstrap,config...
)和Laravel项目主index.php
所在的公共文件夹中。
url是这样的http://dummy.com/api/public/index.php
该目录包含自己的.htaccess
文件,内容如下:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L
这个东西是laravel需要的。
所以我需要所有对http://dummy.com/api
的请求都被重定向到public/
子文件夹(默认情况下index.php)。
例如,http://dummy.com/api/users
实际上应该是http://dummy.com/api/pulbic/users
。
但这对用户来说应该是透明的,而不是更改为真实的url。
我也从这里尝试了很多不同的配置通用。htaccess重定向
但这对我不起作用。请帮助创建这样的规则有理想的结果。
提前感谢大家。
在/api/
文件夹中试试这个。htaccess:
RewriteEngine On
RewriteBase /api/
RewriteRule ^((?!public/).*)$ public/$1 [L,NC]