laravel - laravel 访问带有前缀('admin')的路由在 url 中添加 'public'
问题描述
我在共享主机中有 .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 的 url 都会自动通过我的 Web 服务器中的 /public 文件夹。
我的问题是如何使用 .htaccess 防止这种情况发生?
编辑:它仅在通过身份验证重定向时发生。例如。如果 /admin 那么它会重定向到以 /public/admin 身份登录 ALso,我刚刚发现,我无法从 cms 发布任何内容,它会给出 403 错误。它在本地主机上运行良好。
解决方案
您应该将以下行添加到您的配置文件中,
<Directory /var/www/html/project/public>
AllowOverride All
</Directory>
我希望这个能帮上忙
推荐阅读
- javascript - iOS Safari Won't Refresh Javascript Content
- discord.js - Discord JS获取字段的文本和值
- c# - TCP异步套接字
- python - 与 Ruby 的端口连接
- oracle11g - 如果没有一个完整的键保留表,则无法从视图中删除
- audio - YouTube 歌曲歌词识别
- javascript - 即使我定义了 TypeError 变量,也没有定义它
- c - 尽管没有参数的数据类型并且 x,y 不是全局变量,但这段代码如何没有显示任何错误并且工作正常?
- c++ - C ++:在accumulate方法中使用Lambda函数
- flutter - 从 StaggeredGridView.count 中删除图块?