2014-10-29 5 views
1

У меня возникают проблемы с моим хостинговым сайтом 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]')); 

ответ

2

ли вы активировать URL переписывания в серверной конфигурации ? в вашем файле httpd.conf , вы должны удалить «#» в начале этого 2 линии:

LoadModule rewrite_module modules/mod_rewrite.so 
AddModule mod_rewrite.c 

Чтобы быть уверенным, он активен или нет, вы можете проверить phpinfo() и найдите mod_rewrite.

+0

Я не думаю, что у меня есть доступ к этому файлу на моем общем хостинге. Во всяком случае, вокруг этого? – applecrusher

+0

, по крайней мере, попробуйте загрузить простой файл, такой как info.php, с одной строкой phpinfo(), чтобы вы были уверены или нет. Он ДОЛЖЕН быть активирован для работы, как указано в документации http://laravel.com/docs/4.2/installation#pretty-urls – jibe

+0

Благодарим за указание на эту документацию. Это помогло мне разобраться в проблеме. Файл .htaccess, который у меня был, был в моем корневом каталоге /, но мне также нужен файл .htaccess в каталоге/public. – applecrusher

Смежные вопросы