如何使用它自己的.htaccess文件

时间:2015-07-22 18:04:07

标签: php apache .htaccess mod-rewrite redirect

我知道这些问题已经回答了很长时间,但找不到的答案对我有用 我有以下网址http://dummy.com/api来访问我的根文件夹,我将要进行项目(Laravel项目)。
我正在部署到远程主机,所以我没有加入父目录 我的项目(简单的Laravel项目)包含很多文件夹,顺便说一下,这些文件夹应该放在父目录(app,bootstrap,config...)和Laravel项目的主index.php所在的公共文件夹中。
所以我有这样的网址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 我也从这里Common .htaccess Redirects

尝试了很多不同的配置

但这对我不起作用。请帮助制定此类规则以获得理想的结果 提前谢谢大家。

1 个答案:

答案 0 :(得分:1)

/api/文件夹中尝试此.htaccess:

RewriteEngine On
RewriteBase /api/

RewriteRule ^((?!public/).*)$ public/$1 [L,NC]