Я попытался установить silverstripe 4.2.1 на двух разных серверах и получаю ту же ошибку при установке. В этом году у меня было несколько установок на других клиентских компьютерах, но я впервые столкнулся с этой проблемой.Интересно, если это проблема 4.2.1
Сообщение об ошибке при установке
Дружественные URL не работают.Это наиболее вероятно, потому что модуль перезаписи не настроен правильно на вашем сайте.Вам может потребоваться, чтобы ваш веб-хост или администратор сервера сделал это за вас:
mod_rewrite или другой модуль перезаписи включен на вашем веб-сервере
AllowOverride All установлен для каталога, где установлен SilverStripe
Я поместил некоторый текст мусора в .htaccess в корневой каталог, в public_html и в общую папку silverstripe.Все три вызывают ошибку 500.
Обратите внимание, что я смог посетить site.com, и он был перенаправлен установщику.поэтому я думаю, что mod_rewrite действительно включен.
Когда я захожу на site.com, он выдает версию «Ошибка сервера» для Silverstripe
Мой файл HTAccess, расположенный в общей папке SS:
### SILVERSTRIPE START ###
# Deny access to templates (but allow from localhost)
<Files *.ss>
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Files>
# Deny access to IIS configuration
<Files web.config>
Order deny,allow
Deny from all
</Files>
# Deny access to YAML configuration files which might include sensitive information
<Files ~ "\.ya?ml$">
Order allow,deny
Deny from all
</Files>
# Route errors to static pages automatically generated by SilverStripe
ErrorDocument 404 /assets/error-404.html
ErrorDocument 500 /assets/error-500.html
<IfModule mod_rewrite.c>
# Turn off index.php handling requests to the homepage fixes issue in apache >=2.4
<IfModule mod_dir.c>
DirectoryIndex disabled
DirectorySlash On
</IfModule>
SetEnv HTTP_MOD_REWRITE On
RewriteEngine On
RewriteBase '/public'
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Deny access to potentially sensitive files and folders
RewriteRule ^vendor(/|$) - [F,L,NC]
RewriteRule ^\.env - [F,L,NC]
RewriteRule silverstripe-cache(/|$) - [F,L,NC]
RewriteRule composer\.(json|lock) - [F,L,NC]
RewriteRule (error|silverstripe|debug)\.log - [F,L,NC]
# Process through SilverStripe if no file with the requested name exists.
# Pass through the original path as a query parameter, and retain the existing parameters.
# Try finding framework in the vendor folder first
RewriteCond %{REQUEST_URI} ^(.*)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* index.php
</IfModule>
### SILVERSTRIPE END ###
И тот, что в public_html
RewriteEngine On
RewriteRule ^(.*)$ public/$1
Я использую PHP7.1 на общем сервере.