laravel htaccess无法访问子域名?

时间:2014-08-20 12:04:29

标签: .htaccess laravel

在我的域名公共目录上是laravel公共目录。还有index.php和htaccess文件。但我想访问mydomain.com/demo/,其中demo是一个文件夹。由于路由重写,我总是将我重定向到我的主页mydomain.com。那么如何访问mydomain.com中的文件夹。遵循我的htaccess。 ...

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes...
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

提前致谢

3 个答案:

答案 0 :(得分:0)

在demo目录中创建一个单独的.htaccess文件,以覆盖根目录中的.htaccess文件。

Order Allow,Deny Allow from all

答案 1 :(得分:0)

在demo目录中创建一个单独的.htaccess(如Brian Dillingham所说)文件,以覆盖根目录中的.htaccess文件。 但请改用下面的使用代码:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]

此外,您可以参考以下答案:https://stackoverflow.com/a/38068912

答案 2 :(得分:0)

对于那些使用公共域但Laravel目录位于子目录中的用户。您可能具有以下文件夹结构:

- / <-- directory your domain (e.g. "https://example.com") points to
- some_subfolder1/
- some_subfolder2/
- laravel_project/
    - ...
    - public/
        - .htaccess <-- File one has to modify
        - index.php
        - ...

用于前端控制器的.htaccess文件的RewriteRule如下所示:

RewriteRule ^ laravel_project/public/index.php [L]

所以您最终会得到:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On
    RewriteBase /

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ laravel_project/public/index.php [L]
</IfModule>

此外,我还修改了.env参数的APP_URL文件:

APP_URL=https://example.com/laravel_project/public

此外,您可能会考虑将laravel项目文件(尽管来自公用文件夹)移到该文件树之外。