首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.htaccess设置: Laravel重定向无法工作

.htaccess设置: Laravel重定向无法工作
EN

Stack Overflow用户
提问于 2017-08-25 11:59:50
回答 2查看 5.6K关注 0票数 2

这是我面临问题的Laravel-5.4代码。我创建了带有两页home &关于我们的的测试laravel项目,并使用Apache v-host(www.test.com)映射了文件路径。

当我按下www.test.com/about www.test.com时,它正确地加载到索引页,但是当我尝试点击时,它显示了404个错误.But,当我按下像这样正确加载url www.test.com页面时,我不知道它的问题是在我的代码或Apache配置中,或者任何其他方面。

控制器:

代码语言:javascript
复制
public function index(){
    return view('pages.index');
}
public function about(){
    return view('pages.about');
}

路线:

代码语言:javascript
复制
// Home Page
Route::get('/','pagesController@index');
// About Us Page
Route::get('/about','pagesController@about');  

Apache conf:

代码语言:javascript
复制
   ServerAdmin webmaster@localhost
   ServerName test.com
   ServerAlias www.test.com
   DocumentRoot /var/www/html/test/public/

.htaccess

代码语言:javascript
复制
<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>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-25 12:09:17

您可能对mod_rewrite有一个未启用的问题。

尝试使用a2enmod rewrite启用它,然后重新启动apache /etc/init.d/apache2 restart

看看那个回答

如果不管用的话。

这可能来自Apache:etc/apache2/httpd.conf

这个文章会比我解释得更好。

您可能需要编辑:

代码语言:javascript
复制
<Directory "/var/www/html">
    ...
    AllowOverride None
    ...
</Directory>

代码语言:javascript
复制
<Directory "/var/www/html">
    ...
    AllowOverride All
    ...
</Directory>

重新启动apache /etc/init.d/apache2 restart

如果它仍然不起作用,试着在你的Laravel项目上做一些chmod 0755

票数 5
EN

Stack Overflow用户

发布于 2017-08-25 12:15:00

在apache上安装和启用了mod_rewrite吗?为了使用mod_rewrite,可以在终端中键入以下命令:

代码语言:javascript
复制
a2enmod rewrite

重新启动apache2之后

代码语言:javascript
复制
/etc/init.d/apache2 restart

代码语言:javascript
复制
service apache2 restart

这是我的.htaccess目录中的public/

代码语言:javascript
复制
<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]

另外,编辑/etc/apache2/sites-enabled/000-default

代码语言:javascript
复制
<Directory /var/www/>
   Options Indexes FollowSymLinks MultiViews
   AllowOverride All
   Order allow,deny
   allow from all
</Directory>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45880934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档