У меня возникают проблемы с моим хостинговым сайтом Hostmonster с страницами маршрутизации за пределами главной страницы. Я использую код стартера сайта с каркасом Laravel здесь:Маршрутизация Laravel выходит за пределы домашней страницы
https://github.com/andrewelkins/Laravel-4-Bootstrap-Starter-Site
Дом прекрасно работает, однако помимо этого у меня возникли проблемы. Когда я пытаюсь войти в систему, я получаю следующую ошибку, когда мой URL пытается получить доступ к http://example.com/user/login
. Как исправить эту проблему, чтобы мои страницы направлялись в нужное место ИЛИ Как я могу исправить эту проблему? Спасибо.
Ошибка:
Not Found
The requested URL /public/user/login was not found on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
Apache Server at example.com Port 80
В моем файле .htaccess У меня есть
# Use PHP5.4 as default
AddHandler application/x-httpd-php54 .php
#AddType application/x-httpd-php54 .php
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{REQUEST_URI} !^/public/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /public/$1
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteRule ^(/)?$ public/index.php [L]
В моих маршрутов я это
<?php
/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| Here is where you can register all of the routes for an application.
| It's a breeze. Simply tell Laravel the URIs it should respond to
| and give it the Closure to execute when that URI is requested.
|
*/
/** ------------------------------------------
* Route model binding
* ------------------------------------------
*/
Route::model('user', 'User');
Route::model('comment', 'Comment');
Route::model('post', 'Post');
Route::model('role', 'Role');
/** ------------------------------------------
* Route constraint patterns
* ------------------------------------------
*/
Route::pattern('comment', '[0-9]+');
Route::pattern('post', '[0-9]+');
Route::pattern('user', '[0-9]+');
Route::pattern('role', '[0-9]+');
Route::pattern('token', '[0-9a-z]+');
/** ------------------------------------------
* Admin Routes
* ------------------------------------------
*/
Route::group(array('prefix' => 'admin', 'before' => 'auth'), function()
{
# Comment Management
Route::get('comments/{comment}/edit', '[email protected]');
Route::post('comments/{comment}/edit', '[email protected]');
Route::get('comments/{comment}/delete', '[email protected]');
Route::post('comments/{comment}/delete', '[email protected]');
Route::controller('comments', 'AdminCommentsController');
# Blog Management
Route::get('blogs/{post}/show', '[email protected]');
Route::get('blogs/{post}/edit', '[email protected]');
Route::post('blogs/{post}/edit', '[email protected]');
Route::get('blogs/{post}/delete', '[email protected]');
Route::post('blogs/{post}/delete', '[email protected]');
Route::controller('blogs', 'AdminBlogsController');
# User Management
Route::get('users/{user}/show', '[email protected]');
Route::get('users/{user}/edit', '[email protected]');
Route::post('users/{user}/edit', '[email protected]');
Route::get('users/{user}/delete', '[email protected]');
Route::post('users/{user}/delete', '[email protected]');
Route::controller('users', 'AdminUsersController');
# User Role Management
Route::get('roles/{role}/show', '[email protected]');
Route::get('roles/{role}/edit', '[email protected]');
Route::post('roles/{role}/edit', '[email protected]');
Route::get('roles/{role}/delete', '[email protected]');
Route::post('roles/{role}/delete', '[email protected]');
Route::controller('roles', 'AdminRolesController');
# Admin Dashboard
Route::controller('/', 'AdminDashboardController');
});
/** ------------------------------------------
* Frontend Routes
* ------------------------------------------
*/
// User reset routes
Route::get('user/reset/{token}', '[email protected]');
// User password reset
Route::post('user/reset/{token}', '[email protected]');
//:: User Account Routes ::
Route::post('user/{user}/edit', '[email protected]');
//:: User Account Routes ::
Route::post('user/login', '[email protected]');
# User RESTful Routes (Login, Logout, Register, etc)
Route::controller('user', 'UserController');
//:: Application Routes ::
# Filter for detect language
Route::when('contact-us','detectLang');
# Contact Us Static Page
Route::get('contact-us', function()
{
// Return about us page
return View::make('site/contact-us');
});
# Posts - Second to last set, match slug
Route::get('{postSlug}', '[email protected]');
Route::post('{postSlug}', '[email protected]');
# Index Page - Last route, no matches
Route::get('/', array('before' => 'detectLang','uses' => '[email protected]'));
Я не думаю, что у меня есть доступ к этому файлу на моем общем хостинге. Во всяком случае, вокруг этого? – applecrusher
, по крайней мере, попробуйте загрузить простой файл, такой как info.php, с одной строкой phpinfo(), чтобы вы были уверены или нет. Он ДОЛЖЕН быть активирован для работы, как указано в документации http://laravel.com/docs/4.2/installation#pretty-urls – jibe
Благодарим за указание на эту документацию. Это помогло мне разобраться в проблеме. Файл .htaccess, который у меня был, был в моем корневом каталоге /, но мне также нужен файл .htaccess в каталоге/public. – applecrusher