Laravel重新路由子文件夹.htaccess

时间:2016-05-16 00:39:15

标签: php apache .htaccess laravel

我需要将Laravel项目部署到域子文件夹。我已经将文件放在正确的位置,即与public_html文件夹处于同一级别的项目文件夹,我已将公用文件夹的内容复制到public_html(好吧,我创建了一个symlink说实话。)

我只有一个问题:

如果我转到my-domain.com/proj-name,我可以毫无问题地看到主页 但是当我转到项目页面my-domain.com/proj-name/about(例如)时,我得到404 Not Found: The requested URL /proj-name/about was not found on this server.

我认为解决方案是在.htaccess上编辑RewriteRule,这样当我浏览到my-domain.com/proj-name/about时,它会删除proj-name,就好像它正在尝试访问my-domain.com/about一样。

我该怎么做?

以下是我当前的 .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...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>

1 个答案:

答案 0 :(得分:-1)

您应该执行以下操作:

RewriteCond %{REQUEST_URI} !^/proj-name/
RewriteRule ^(.*)$ proj-name/$1 [L]

注意:上述内容应位于位于.htaccess而不是public_html的{​​{1}}