2016-08-01 4 views
1

Я новичок в Laravel, и им пытаются получить перенаправлять все входящие запросы от /example к [email protected] Я использую этот маршрутLaravel 5 маршрутизации всех маршрутов

Route::match(['get', 'post'], '/example/{any}', ['uses' =>'[email protected]'])->where('any', '.*'); 

Все отлично работает с /example/any/any/any, но я получаю No input file specified. ошибка при попытке /example/any/any/any.php Пожалуйста, помогите мне решить эту проблему. Благодарю.

+1

NGIX отправит запросы на .php-файлы в обработчик файла PHP, не проверяя, существует ли файл. В apache это обычно разрешается с помощью mod_rewrite. Я предполагаю, что у NGIX есть что-то подобное. Проверьте http://nginxlibrary.com/resolving-no-input-file-specified-error/ – apokryfos

+0

Привет, спасибо за ваш комментарий, мне удалось сделать то, что я хотел, изменив конфигурацию NGINX. Просто добавил этот 'try_files $ uri $ uri//index.php? $ Args;' Теперь он работает так, как ожидалось. –

+0

Это может помочь другим, если вы ответили на свой вопрос решением. – apokryfos

ответ

0

Route::match Используется только для соответствия нескольким HTTP Verbs маршрутам.

Насколько я знаю, вы не можете достичь того, чего хотите, и нет смысла это делать.

Что вам может понадобиться это Route::resource проверить документы

0

удалось заставить его работать путем редактирования NGINX конфигурационного файла. В моей ситуации я использую усадьбу laravel 5 с настройкой по умолчанию. Файл конфигурации находится /etc/nginx/sites-enabled/homestead.app. Добавить try_files $uri $uri/ /index.php?$args; сразу после location ~ \.php$. Должно выглядеть похоже на эту

location ~ \.php$ { 
     try_files $uri $uri/ /index.php?$args; 
     fastcgi_split_path_info ^(.+\.php)(/.+)$; 
     fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; 
     .... 
    } 
0

Я не уверен, почему, но вы можете использовать Route :: группу с префиксом в качестве такого

Route::group(['prefix' => 'example'], function() { 
    Route::get('action/{id}', '[email protected]'); 
}); 

Переход к http://yoursite.com/example/action/111 будет использовать метод getAction в ExampleController.

public function getAction($id) { 
    // do something with Example with this $id 
} 
+0

Я работаю над «умным» прокси-сервером, поэтому хочу, чтобы все входящие запросы 'application.com/proxy/{method}/{method}? {Parameters}' использовали бы тот же метод 'ProxyController @ index'. В любом случае .. Проблема с исправлением исправлена, спасибо за комментарии. ура –

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