2016-04-07 4 views
1

Используя Laravel, я хочу создать маршрут для замены функциональности устаревшего URL-адреса, который использовался как файл PHP, но всякий раз, когда я создаю маршрут, который заканчивается .php, распознавать маршрут, и я получаю 404.Маршруты Laravel, заканчивающиеся на «.php» не работают

Route::get('test.php', function(){return "test";}); // Gets a 404 error.

Однако другие маршруты с расширениями похоже на работу.

Route::get('test.txt', function(){return "test";}); // works fine

ответ

2

см mod_rewrite как сво часть апача mod_rewrite обработки этого, а не каркас Laravel в одиночку. см. в общедоступном/.htaccess файле.

Я не вижу причин для этого. Но, как вы хотите знать, я говорю. Я не рекомендую это, так как избегаю некоторых целей структуры.

Сначала вам необходимо отредактировать свои правила перезаписи файлов .htaccess, чтобы включить расширение php. я не могу сказать много, так как я не вижу эти файлы здесь.

Во-вторых, все запросы по умолчанию будут перенаправлены на index.php. см. один из моих файлов larvel public/folder .htaccess. вам нужно заглянуть в ваш и изменить это, есть много способов, которые вы можете изменить в соответствии с вашими потребностями. могут быть и другие файлы .htaccess

для расширения изменения части смотрите здесь

RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)/$ /$1 [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule^index.php [L]часть для изменения index.php

мой файл .htaccess, как это не модифицировано

<IfModule mod_rewrite.c> 
<IfModule mod_negotiation.c> 
    Options -MultiViews 
</IfModule> 

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

0

В laravel для вашего маршрута не требуется расширение .php.

Проверьте documentation.

Также, когда вы возвращаете представления, вам не нужно расширение .php.

+1

Я знаю. Существует уже существующий URL, который я хочу заменить маршрутом в laravel. Я не могу изменить URL из-за устаревшей поддержки и заканчивается на '.php'. –

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