2017-07-14 47 views
0

我正在部署laravel-localization的我的第一个laravel应用程序。不幸的是,我目前得到的错误,Laravel-本地化部署 - 在此服务器上找不到请求的URL/en

未找到

所请求的URL/EN此服务器上找到。

此外,在尝试 使用ErrorDocument来处理请求时遇到404未找到错误。

我已经搜索了网络,试图找到其他人有同样的问题,看看他们是否有一个可行的解决方案。我发现至少有one,但看起来他无法解决它。我也发现这个解决方案here,但这两个想法似乎都不起作用。

当我改变(在config/laravellocalization.php文件)

'hideDefaultLocaleInURL' => false, 

从假到真

'hideDefaultLocaleInURL' => true, 

我可以看到主页,但仅此而已。所有其他页面都重定向到404错误。

我也改变了index.php文件,以反映我的文件夹结构作为此站点的公共文件夹是文件夹中的public_html中的文件夹内:

require __DIR__.'/../../myapp/bootstrap/autoload.php'; 

...

$app = require_once __DIR__.'/../../myapp/bootstrap/app.php'; 

注意:1一切工作在我的本地主机上。部署似乎存在问题。

注2:因为它是当前配置,该网站会自动尝试加载www.mysite.com/en版本,这让我觉得我的index.php文件的更改是正确的。没有这些更改,我会收到页面无法加载的错误。

注3:这里是我当前的文件夹结构:
- /主页/用户名
- mostOfMyFiles
- 的public_html
--- nameOfUrl
---- publicFiles

注4:关于路由,这里是我目前在我的web.php文件中有:

<?php 

    Route::group([ 
     'prefix' => LaravelLocalization::setLocale(), 
     'middleware' => [ 'localeSessionRedirect', 'localizationRedirect' ] 
     ], function() 
    { 
     Route::get('/', function() 
     { 
      return View::make('welcome'); 
     }); 

     Route::get(LaravelLocalization::transRoute('routes.about'), function() { 
      return View::make('about'); 
     }); 

     Route::get(LaravelLocalization::transRoute('routes.contact', '[email protected]'), function() { 
      return View::make('contact'); 
     }); 

     Route::post(LaravelLocalization::transRoute('routes.contact'), 
      ['as' => 'contact', 'uses' => '[email protected]']); 

    }); 

我曾尝试向组中添加'web'中间件,如here所示,但这也未解决问题。 :(

注意:我还托管了另一个站点,这就是为什么我在具有URL名称的文件夹中存在公共文件的原因。

任何想法可能是什么问题?

我欣赏所有想法,评论和批评。 :)

+1

你确定你应该改变'索引添加的代码块。 php文件?我不认为这是一个好主意。在'config'文件或'.env'文件中通常需要更改变量 – xperator

+0

@xperator。这实际上是我第一次部署Laravel站点。所以,我不太确定。我正在学习本教程:https://www.youtube.com/watch?v = 6g8G3YQtQt4 - 建议以我所做的方式更改index.php文件。 – AlmostPitt

+0

你知道我想到的第一件事是为所有路线添加一个前缀。我的意思是,如果你的Laravel处于自定义路径,通常情况就是这样。这里是我发现的关于本地化的链接不确定它是否与https://laracasts.com/discuss/channels/laravel/l5-localisation-routing相关 – xperator

回答

1

我有同样的问题。

经过一番深入的研究,我找到了适合我的解决方案。 我有点noob以及laravel部署,我不知道为什么这个问题在共享主机上部署laravel项目,有千字节,每次有人说这是不正确的方式,所以我甚至不知道什么是正确的方式。

我在“的public_html/.htacces” 选项-MultiViews

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}] 

相关问题