Laravel重新路由子文件夹.htaccess

问题描述:

我需要将Laravel项目部署到域子文件夹。我已经将文件放在正确的位置,即与public_html文件夹位于同一级别的项目文件夹,并且我已将公用文件夹的内容复制到public_html(当然,我创建了symlink来说明事实)。Laravel重新路由子文件夹.htaccess

我只有一个问题:

如果我去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这样,当我浏览到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> 

你应该做到以下几点:

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

注:以上应该在位于public_html而不是在.htaccesspublic_html/proj_name

+1

我创建'.htaccess'在'public_html',但它仍然不起作用。在'public_html'里面,除了这两行'.htaccess'之外,我还有一个名为'proj_name'的符号链接,这个链接导致Laravel项目'public'文件夹。 –

+0

你的符号链接是正确的。你是否将'public'中的'.htaccess'改为原来的状态? – user2094178

+0

'public'文件夹中的'.htaccess'是我在我的问题中发布的(在Laravel 5.2项目创建时生成的)。 –