#php #apache #.htaccess #symfony
Вопрос:
Шаги, которые я сделал, как я понял:
- добавьте symfony/apache-пакет, который создает файл .htaccess в общей папке.
- Добавьте среду Prod и очистите кэш. Также заменил базу данных по мере необходимости.
- Затем я поместил файл .htaccess в корневую папку xampp.
Я использую linux, и путь к symfony-htdocs/suite
Файл htdocs находился в папке suite/public, и я переместил его в папку suite. Я сопоставил его с документами официальной страницы symfony
https://symfony.com/doc/current/setup/web_server_configuration.html#adding-rewrite-rules
Мой .htaccess папки suite-это:
<VirtualHost *:80>
# ...
DocumentRoot /opt/lampp/htdocs/suite/public
<Directory /opt/lampp/htdocs/suite/public>
AllowOverride None
DirectoryIndex index.php
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI}::$0 ^(/. )/(.*)::2$
RewriteRule .* - [E=BASE:%1]
# Sets the HTTP_AUTHORIZATION header removed by Apache
RewriteCond %{HTTP:Authorization} .
RewriteRule ^ - [E=HTTP_AUTHORIZATION:%0]
RewriteCond %{ENV:REDIRECT_STATUS} =""
RewriteRule ^index.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ %{ENV:BASE}/index.php [L]
</IfModule>
<IfModule !mod_rewrite.c>
<IfModule mod_alias.c>
RedirectMatch 307 ^/$ /index.php/
# RedirectTemp cannot be used instead
</IfModule>
</IfModule>
</Directory>
</VirtualHost>
Теперь Он говорит:
Ошибка сервера!
Сервер обнаружил внутреннюю ошибку и не смог выполнить ваш запрос. Либо сервер перегружен, либо произошла ошибка в CGI-скрипте.
Если вы считаете, что это ошибка сервера, пожалуйста, свяжитесь с веб-мастером. Ошибка 500 локальный хост Apache/2.4.51 (Unix) OpenSSL/1.1.1 l PHP/8.0.11 mod_perl/2.0.11 Perl/v5.32.1
Комментарии:
1. Вы можете проверить
/var/log/apache2/error.log
(может быть расположено по-другому в зависимости от вашей настройки)2. Не знаю, связано ли это. Но проверьте отступы на вкладке с содержимым, которое вы скопировали из
.htaccess
файла. Также убедитесь, что, поскольку вы скопировали содержимое с виртуального.htaccess
хоста, вы удалили.htaccess
файл. Это быстрее, так как конфигурация уже загружена в виртуальный хост3. Так что же мне теперь делать, пожалуйста? Я хотел развернуть приложение symfony, но оно показывает ошибку сервера.
4. «Затем я поместил файл .htaccess в корневую папку xampp». .htaccess, созданный apache-pack?
5. ДА. Это работает. Я использовал symfony 5.3, но . htaccess не работал в xampp, но он работает на моем хост-сервере. Спасибо вам за вашу помощь.