Laravel htaccess не работает

Файл Laravel по умолчанию .htaccess не будет работать

Наконец-то я установил все для Laravel, но на моей домашней странице появляется ошибка 500!

Похоже, это мой файл .htaccess. Если я удалю его, страница заработает. Если поставить обратно, другая ошибка 500.

Если я изменю эту предпоследнюю строку на «RewriteRule ^ index.php [L]» (без пробела перед index.php), то ошибка 500 исчезнет, ​​но правило перезаписи не будет работать.

Мой хост — 1and1.com.

Кто-нибудь может мне помочь?

5 ответов

Изменили эту строку:

Теперь это работает. Я не только не получаю ошибку 500, но и кажется, что URL-адреса работают должным образом.

Я также столкнулся с этой проблемой и решил ее, прокомментировав строку параметров в файле .htaccess ..

Использование apache 2.4.x

Это может противоречить конфигурации сайта. Потому что у него не может быть нескольких условий с разными операторами.

Я пока не могу найти ссылку. Но я где-то читал это раньше.

ИЗМЕНИТЬ : обнаружена ссылка. .

Смешивание опций с + или — с опциями без них является недопустимым синтаксисом и будет отклонено во время запуска сервера проверкой синтаксиса с прерыванием.

Просто убедитесь, что ваши конфигурации .htaccess и apache не конфликтуют друг с другом.

У меня была аналогичная проблема, и ошибка внезапно произошла в одночасье.

Я искал по всему Google и Stackoverflow, но не смог найти никаких решений, чтобы исправить эту проблему, и продолжал получать ошибку внутреннего сервера 500.

Я был на виртуальном хостинге, и даже переименование файла .htaccess не помогло.

В нижней части .htaccess я поставил

Прямо перед окончанием . Это решило проблему для меня.

Это работает для меня в большей части проекта, где по умолчанию не работает

Мне кажется, что внутренняя ошибка 500 возникает из-за того, что вы не установили виртуальный хост в файле apache httpd.conf.

Поместите эту строку в файл httpd.conf

И запустить его на вашем локальном компьютере

Для открытия окна C: \ Windows \ System32 \ drivers \ etc \ hosts поместите эту строку.

Для linux откройте \ etc \ hosts, поместите эту строку.

Вы можете обратиться к этой ссылке для получения дополнительной информации:

Источник

Настройка

Configuration → Community +1 015 31 мая 2015

Данная статья документации актуальна для версий 5.3, 5.2 и 5.0, для версии 5.1 не актуальна.

Введение

Все файлы настроек Laravel хранятся в папке config . Каждая настройка задокументирована, поэтому не стесняйтесь изучить эти файлы и познакомиться с доступными возможностями конфигурирования.

После установки

Название вашего приложения

После установки Laravel вам может потребоваться «назвать» ваше приложение. По умолчанию каталог app находится в пространстве имён PHP App и автоматически загружается с помощью Composer по стандарту автозагрузки PSR-4. Но вы можете изменить пространство имён в соответствии с названием вашего приложения с помощью Artisan-команды sh app:name .

Например, если ваше приложение называется «Horsefly» , вы можете выполнить следующую команду в корне вашей инсталляции:

Задание имени для вашего приложения вовсе не обязательно, и вы можете оставить пространство имён PHP App , если захотите.

Другие настройки

После установки Laravel нужно настроить самую малость. Вы можете сразу начинать разработку! Но если захотите, просмотрите файл config/app.php и его документацию. Он содержит несколько параметров, таких как timezone и locale , которые могут пригодиться для настройки вашего приложения в зависимости от вашего местоположения.

После установки Laravel вам также надо настроить вашу локальную среду.

Читайте также:  Сколько не работали суды

Внимание: никогда не устанавливайте параметр app.debug в значение true для продакшна.

Права доступа

Для Laravel может потребоваться настроить один набор прав доступа: веб-серверу требуются права записи в папки, находящиеся в storage и vendor .

Настройки среды

Часто необходимо иметь разные значения для различных настроек в зависимости от среды, в которой выполняется приложение. Например, вы можете захотеть использовать разные драйвера кэша на локальном и продакшн-сервере.

Для этого в Laravel используется PHP-библиотека DotEnv от Ванса Лукаса. В свежей инсталляции Laravel в корне вашего приложения будет файл .env.example . Если вы установили Laravel с помощью Composer, этот файл будет автоматически переименован в .env , иначе вам следует сделать это вручную.

Также вы можете создать файл .env.testing . Этот файл переопределит значения файла .env при запуске тестов PHPUnit и при выполнении Artisan-команд с ключом sh —env=testing .

Чтение настроек среды

Все перечисленные в этом файле переменные будут загружены в супер-глобальную переменную PHP PHP $_ENV , когда ваше приложение получит запрос. Но вы можете использовать вспомогательную функцию PHP env () для получения значений этих переменных в ваших конфигурационных файлах. На самом деле, если вы заглянете в файлы настроек Laravel, то заметите несколько опций, уже использующих эту функцию:

Второе аргумент этой функции — значение по умолчанию. Оно будет использовано, если такой переменной среды нет.

Не бойтесь изменять ваши переменные среды так, как необходимо для вашего локального сервера, а также для среды продакшна. Но ваш файл .env не должен быть включён в систему контроля версий вашего приложения, так как каждому использующему ваше приложение разработчику/серверу может потребоваться разная настройка среды.

Если вы работаете в команде, то, возможно, вам захочется и дальше поставлять файл .env.example с вашим приложением. Поместив примеры значений в этот файл, вы дадите понять другим разработчикам, какие переменные среды необходимы для запуска вашего приложения.

Определение текущей среды

Текущая среда приложения определяется по переменной PHP APP_ENV в файле .env . Вы можете получить это значение методом PHP environment () фасада App :

Также вы можете передавать аргументы в метод PHP environment () , чтобы проверить — совпадает ли имя среды с заданным значением. Метод вернёт PHP true , если среда совпадёт с любым из них:

Экземпляр приложения также доступен через вспомогательный метод PHP app () :

Вы можете получить имя текущей среды приложения с помощью метода PHP environment для экземпляра PHP Application :

Также вы можете передавать аргументы в метод PHP environment () , чтобы проверить — совпадает ли имя среды с заданным значением. Метод вернёт PHP true , если среда совпадёт с любым из них:

Чтобы получить экземпляр приложения, выполните контракт Illuminate\Contracts\Foundation\Application с помощью сервис-контейнера. Конечно, когда вы находитесь внутри сервис-провайдера, экземпляр приложения доступен через переменную PHP $this -> app .

Экземпляр приложения также доступен через функцию PHP app () или фасад PHP App :

Чтение значений настроек

Вы можете легко обращаться к значениям настроек с помощью глобальной вспомогательной функции PHP config () из любого места в вашем приложении. К значениям настроек можно обращаться, используя «точечный» синтаксис, в который входит имя файла и название опции. При этом можно указать значение по умолчанию, которое будет возвращено при отсутствии запрашиваемой опции:

Для задания значений настроек во время выполнения передайте массив в функцию PHP config () :

Вы легко можете прочитать значения настроек, используя фасад PHP Config :

Вы также можете использовать вспомогательную функцию PHP config :

Кэширование настроек

Для повышения скорости работы вашего приложения вы можете кэшировать все файлы настроек в единый файл с помощью Artisan-команды sh config:cache . Она объединит все параметры настроек вашего приложения в единый файл, который будет быстро загружен фреймворком.

У вас должно войти в привычку запускать команду sh php artisan config:cache , как типичная часть разработки. Не стоит запускать эту команду в процессе локальной разработки, так как при этом часто требуется изменять параметры настроек.

Читайте также:  Краш бандикут не работает джойстик

Если вы выполняете команду sh config:cache во время процесса развёртывания, вы должны быть уверены, что вызываете функцию PHP env () только из ваших файлов настроек.

Режим обслуживания

Когда ваше приложение находится в режиме обслуживания (maintenance mode), специальный шаблон будет отображаться для всех запросов в вашем приложении. Это позволяет легко «отключать» приложение во время его обновления или при обслуживании. Проверка режима обслуживания включена в стандартный набор посредников для вашего приложения. Когда приложение находится в режиме обслуживания, будет вызвано исключение MaintenanceModeException с кодом состояния 503 (для версии 5.2 и ранее — HttpException ).

Для включения этого режима просто выполните Artisan-команду down:

Также вы можете передать в команду down опции message и retry. Значение message можно использовать для вывода или записи в журнал необходимого сообщения, а значение retry будет задано в качестве значения HTTP-заголовка Retry-After :

Чтобы выйти из режима обслуживания выполните команду up:

Шаблон ответа для режима обслуживания
Шаблон для ответов по умолчанию для режима обслуживания находится в resources/views/errors/503.blade.php . Вы можете изменить его для своего приложения.

Режим обслуживания и очереди
Пока ваше приложение находится в режиме обслуживания, не будут обрабатываться никакие задачи очередей. Задачи продолжат обрабатываться как обычно, как только приложение выйдет из режима обслуживания.

Альтернативы режиму обслуживания

Поскольку для режима обслуживания необходима остановка вашего приложения на несколько секунд, рассмотрите такие альтернативы, как Envoyer, чтобы обеспечить обновление на лету.

Красивые URL

Apache

Фреймворк поставляется с файлом public/.htaccess , который используется для реализации URL-адресов без index.php . Если вы используете Apache для работы вашего Laravel-приложения, убедитесь, что включён модуль mod_rewrite .

Если поставляемый с Laravel файл .htaccess не работает с вашей инсталляцией Apache, попробуйте этот:

Если ваш хостинг не разрешает опцию FollowSymlinks , попробуйте заменить её на Options +SymLinksIfOwnerMatch .

Nginx

В Nginx следующая директива в настройках вашего сайта позволит использовать «красивые» URL-адреса:

Само собой, при использовании Homestead красивые URL будут настроены автоматически.

Источник

Параметр .htaccess: перенаправление страницы Laravel не работает

Вот мой код Laravel-5.4, с которым я столкнулся. Я создал тестовый проект Laravel с двумя страницами Главная & насчет нас и сопоставил путь к файлу, используя Apache v-host (www.test.com)
Когда я ударил www.test.com он загружается правильно на страницу индекса, но когда я пытаюсь нажать www.test.com/about Это показывает 404 ошибку. Но когда я ударил, как этот URL www.test.com/index.php/about страница загружается правильно
Я не знаю, что это проблема в моем коде или конфигурации Apache или любой другой

контроллер:

Маршрут:

Apache conf:

.Htaccess

Решение

Возможно, у вас проблема с mod_rewrite, который не включен.

Попробуйте включить его с a2enmod rewrite а затем перезапустите Apache /etc/init.d/apache2 restart

Посмотри на это ответ .

ИЛИ ЖЕ

Если это не работает
Это может прийти из Apache conf: etc/apache2/httpd.conf ,
это статья объясню это лучше меня.

Вам может понадобиться отредактировать:

И перезапустить apache /etc/init.d/apache2 restart

ИЛИ ЖЕ

Если это все еще не работает, попробуйте сделать некоторые chmod 0755 на проекте вашего Laravel.

Другие решения

У вас установлен и включен mod_rewrite на apache?
Для того, чтобы использовать mod_rewrite Вы можете ввести следующую команду в терминале:

Перезапустите apache2 после

Это .htaccess У меня есть на моем public/ каталог:

Также редактирование /etc/apache2/sites-enabled/000-default

Источник

Маршруты Laravel не работают, конфигурация Apache допускает только public / index.php / маршрут

чтобы просмотреть маршрут выше, я должен перейти к public / index.php / get.

Я просмотрел довольно много сообщений SO и погуглил, пытаясь разные вещи, и это не имело значения (да, я перезапускаю apache каждый раз).

вот мой .htaccess в директории Public:

в чем может быть причина еще? Я запускаю Ubuntu.

Читайте также:  Гармин не работает пульсометр

5 ответов

у вас установлен и включен mod_rewrite на apache? Попробуйте удалить строки if (и ) и посмотреть, выдает ли он ошибку при попытке загрузить веб-сайт. Если это так, запустите sudo a2enmod rewrite и перезапустите apache.

Это .htaccess у меня на моем public / directory:

две наиболее распространенные причины такого поведения:

и mod_rewrite не включен

sudo a2enmod rewrite && sudo service apache2 restart

AllowOverride имеет значение None, установите его на All, предполагая Apache2.4

sudo nano /etc/apache2/apache2.conf

искать , и AllowOverride None до AllowOverride All , затем сохраните файл и перезапустите Apache

изменение AllowOverride None до AllowOverride All и sudo a2enmod rewrite && sudo /etc/init.d/apache2 reload не помогло.

Если вы не используете .htaccess файл, нужно указать каталог для переадресации:

В MacOs. Главная проблема .htaccess не работает, нет mod_rewrite.так включено в httpd.conf файл конфигурации apache. я решил это, раскомментировав строку:

С loadmodule rewrite_module IP-адресов/apache2 не/модуля mod_rewrite.так

Источник

Маршрутизация Laravel 4 не работает из-за файла .htaccess?

Я пишу свои шаги и результаты здесь, чтобы вы могли видеть, что я пробовал, и какие результаты у меня есть. Любые советы будут приветствоваться. Я следил за комментариями в этом ответе.

Я запускаю Laravel 4, используя XAMMP version 1.8.2 с PHP 5.4.19 и Apache 2.4.4 на машине с Windows 7, и я просто все еще пытаюсь запустить локальный экземпляр.

В моем случае: http://localhost/sos/sos_public/ — мой главный экран, и это работает, но когда я пытаюсь добраться до http://localhost/sos/sos_public/signup , я получаю эту ошибку: Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException , о которой много говорили в сети, а затем я нашел GaryJ, указав, что это может быть проблема .htaccess , поэтому я сделал то, что он предложил.

Мой файл /app/routes.php выглядит так (я пробовал это с / перед signup тоже):

Во-первых:

Просто для смеха посмотрите, работает ли /index.php/hello . Если это так, то это проблема a .htaccess .

http://localhost/sos/sos_public/index.php/signup работал отлично. Таким образом, это проблема .htaccess .

Мой файл .htaccess выглядел следующим образом:

И

если вы используете Apache 2.4 , обратите внимание на изменения со времени предыдущего версии, касающиеся Require all granted и AllowOverride all в пределах . на вашем виртуальном хосте.

Я добавил это в мой httpd.conf file , как было предложено Dalton Gore — получил ошибку Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException (изменил этот путь каталога на /SOS/sos_public и C:/xammp/htdocs/SOS/sos_public/ и C:/xammp/htdocs/SOS/sos_public — те же результаты):

Далее:

Проверьте, работает ли что-либо в .htaccess

Я добавил dsjkdsfghk в мой файл .htaccess и сразу получил ошибку, поэтому я знаю, что мой файл .htaccess используется.

Тогда:

Попробуйте удалить условие IfModule . Поскольку у вас есть доступ к host/vhost, вы можете в ближайшее время включить этот модуль, если это не так — так оно не нужно проверять при каждом запросе. В равной степени попробуйте переместить его из .htaccess и в блок . в вашем vhost — если у вас нет ничего другого в вашем .htaccess, тогда это может быть также удалены.

Тогда:

Попробуйте: DocumentRoot
«/Users/amiterandole/Sites/laravelbackbone/public» ServerName
laravelbackbone.dev AllowOverride all Require all
granted Options -MultiViews
RewriteEngine On RewriteCond % !-f RewriteRule ^
index.php [L]

Я сделал это и точно так же, как Амит,

Я вынул мой файл htaccess и попробовал выше, а теперь ничего кажется, работает.

За исключением того, что его laravelbackbone.dev указал на его корень папки Sites , я просто получил Error 400 — Bad request на http://localhost/sos/sos_public/ и http://localhost/sos/sos_public/signup , когда я запустил их в своем браузере.

Мой файл httpd-vhosts.conf выглядел следующим образом:

и в моем файле .hosts я, очевидно, имел:

И наконец:

Вы определенно получили файл conf/extra/httpd-vhosts.conf (без комментирования) в пределах основного httpd.conf ?

У меня есть это без комментариев — да.

Что мне следует изменить где?
Что мне не хватает?

Источник

Оцените статью