Я заметил странное поведение для моего маршрута активации для приложения, которое я разрабатываю с использованием laravel, и после нескольких часов отладки через xdebug и т. Д. Он пришел к выводу, что мой маршрут фактически вызывался дважды порой. Чтобы воссоздать ситуацию, я создал новый новый проект laravel с файлами по умолчанию и просто добавил простой маршрут в качестве теста, который делает следующее:
Route::get('/activate/{code}', function($code) { file_put_contents('/home/fa/testproj/route_called.txt', $code . "\n", FILE_APPEND); });
В основном то, что делает этот простой маршрут, – это взять параметр маршрута, переданный в URI, и записать его в файл. Как ни странно, я заметил, что маршруты вызывались дважды для параметра кода, который я http://myserver/activate/123456789
в URI (например, http://myserver/activate/123456789
), но только один раз для повторных кодов (возможно, из-за некоторого кеширования сеанса?). Содержимое файла 'route_called.txt' для нескольких попыток было следующим:
123456789 123456789 123838384242 123838384242 123838384242 <---- notice that it's called only once for repeated parameter 1238383842424657347 1238383842424657347 332211576347 332211576347 332211576347 <---- notice that it's called only once for repeated parameter 1238376540897326 1238376540897326
Файлы laravel свежие, и я ничего не изменил, кроме четырех строк маршрутных кодов, как указано выше. У меня есть стандартные файлы, предоставленные laravel в общей папке:
-rw-rw-r-- 1 fa fa 0 Apr 15 16:06 favicon.ico -rw-rw-r-- 1 fa fa 356 Apr 15 16:06 .htaccess -rw-rw-r-- 1 fa fa 1586 Apr 15 16:06 index.php drwxrwxr-x 2 fa fa 4096 Apr 15 16:06 packages/ -rw-rw-r-- 1 fa fa 24 Apr 15 16:06 robots.txt
.htaccess также не затронут, как это предусмотрено laravel:
<IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews </IfModule> RewriteEngine On # Redirect Trailing Slashes... RewriteRule ^(.*)/$ /$1 [L,R=301] # Handle Front Controller... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] </IfModule>
Мой сервер Ubuntu 12.04LTS, работает Apache 2.2.22 со всеми стандартными модулями php, требуемыми laravel.
Некоторые люди говорят в другом месте, что это может быть связано с отсутствием проблемы с favicon.ico, но laravel позаботился об этой проблеме, уже предоставив нам файл favicon.ico, как указано выше.
Буду признателен за любую оказанную помощь. Большое спасибо!
Его любезные люди, мне удалось найти ответ, почему это странное поведение. Это не имеет никакого отношения к Ларавелю. Похоже, что интернет-фильтрующее устройство на уровне ISP – это то, что отправляет дублирующие HTTP-запросы на мой сервер. Я предполагаю, что устройство отправит повторяющиеся запросы, имитирующие наши запросы на страницу просмотра, чтобы проверить, соответствуют ли посещаемые нами сайты политикам фильтрации … Придется переделать некоторые логики моего приложения, чтобы обслуживать подобные ситуации.
У меня была такая же проблема, и я решил ее. Моя проблема была связана с ларавельскими средними. Пожалуйста, проверьте свои специальные посредники. Надежда помочь:) …