laravel访问带有前缀('admin')的路由在url中添加'public'

时间:2018-06-12 06:04:38

标签: laravel

我在共享主机中有.htaccess文件:

<IfModule mod_rewrite.c>

  RewriteEngine on

  RewriteCond %{REQUEST_URI} !^public

  RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

除了cms之外,它在所有路线上运行良好 我的web.php路由文件是:

Route::get('/', 'HomeController@index')->name('home');
Route::get('/home', 'HomeController@index');
Route::get('/menu', 'HomeController@menu')->name('menu');
Route::get('/reservation', 'HomeController@reservation')->name('reservation');
Route::get('/gallery', 'HomeController@gallery')->name('gallery');
Route::get('/contact', 'HomeController@contact')->name('contact');
Route::get('/about', 'HomeController@about')->name('about');

Auth::routes();

Route::prefix('admin')->name('admin.')->namespace('Admin')->group(function () {
    Auth::routes();
    Route::middleware('auth:admin')->group(function () {
        Route::get('/', 'AdminController@index')->name('home');
        Route::match(array('GET', 'POST'), '/gallery/{gallery?}/{action?}', 'AdminController@gallery')->name('gallery');
        Route::match(array('GET', 'POST'), '/{controller}/{action?}/{id?}', 'AdminController@crud')->where('id', '[0-9]+')->name('crud');
    });    
});

它在我的本地服务器上运行良好,但是,任何带/ admin的网址都会自动通过我的网络服务器中的/ public文件夹。

我的问题是如何使用.htaccess阻止这种情况发生?

编辑:只有在通过身份验证重定向时才会发生。 例如。如果/ admin然后它重定向到登录为/ public / admin 另外,我刚刚发现,我无法从cms发布任何内容,因为它给出了403错误。它在localhost上工作正常。

1 个答案:

答案 0 :(得分:1)

您应该在conf中添加以下行,

<Directory /var/www/html/project/public>
        AllowOverride All
</Directory>

我希望这会有所帮助