У меня возникают проблемы при развертывании предоставленного мне приложения, мои ссылки не работают, и я получаю сообщение об ошибке «Не найдено», однако, когда я запускаю его локально, все работает. Я почти уверен, что проблема заключается в моем файле htaccess и в том факте, что для его локального запуска разработчик, создавший приложение, добавил файл server.php в корневой каталог, в котором говорится, что он позволяет приложению запускаться локально. Поэтому я думаю, что мне нужно изменить htaccess или сделать что-то, чтобы имитировать то, что server.phpfile делает локально при развертывании. Также, когда я развертываю, я делаю корневой каталог \ public, чтобы я мог получить домашнюю страницу.
Это мой server.php:
<?php
$uri = urldecode(
parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)
);
// This file allows us to emulate Apache's "mod_rewrite" functionality from the
// built-in PHP web server. This provides a convenient way to test a Laravel
// application without having installed a "real" web server software here.
if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) {
return false;
}
require_once __DIR__.'/public/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}]
</IfModule>
Я немного поиграл с ним, чтобы попытаться заставить его работать безуспешно, я изменил, например, где написано REQUEST_FILENAME на REQUEST_URI, я удалил весь раздел IfModule и т.д., но я обычно кодирую в js и используйте узел, поэтому я действительно не знаю синтаксиса или того, что здесь происходит.
Спасибо
Если ваш сайт находится на public/, вам необходимо настроить конфигурацию вашего веб-сервера; а именно изменение корня документа на папку public/. Это, скорее всего, заставит .htaccess работать правильно.
Я изменил корень на загрузку из общедоступного, что позволяет мне видеть страницу индекса, но ссылки не работают.
@ Мистер Ганди Я не проверял ошибки, потому что они разные в зависимости от того, где я развертываю, на heroku и AWS у меня есть простая страница 404 server not found, и на лазурном я получаю Ресурс, который вы ищете, был удален, имел свое имя изменен, или временно недоступен.
@Jack Следующее, что нужно проверить, это конфигурация веб-сервера. Убедитесь, что а) вы вообще используете Apache и б) что переопределения .htaccess разрешены вашей конфигурацией Apache.
@ceejayoz, спасибо, я проверил это, похоже, проблема не в том, что Heroku Docs говорит, что переопределение метода установлено для всех по умолчанию, и хотя я не нашел того, что говорится на других, я почти уверен, что они также настроены на включение, так как когда я делаю изменения в моем htaccess Иногда я вижу разные результаты, но ничего хорошего,






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