Homestead .htaccess переписать правило с Angular 7 - PullRequest
0 голосов
/ 01 мая 2019

Я пытался использовать Homestead с моим проектом Angular, и когда я нажимаю кнопку «Обновить» в браузере на URI (чего на самом деле не существует), RewriteRule не перехватывает запрос и не перенаправляется на index.html файл, в котором Angular может обрабатывать URI.

Вот мой .htaccess файл:

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^(.*) index.html [NC,L]

Я всегда получаю сообщение No input file specified. при обновлении маршрута. На основном пути (www.example.test /) файл index.html загружается хорошо.

Какая правильная конфигурация .htaccess для этого случая? Или если нет .htaccess это проблема, где я могу проверить другие настройки?

Ответы [ 2 ]

0 голосов
/ 01 мая 2019

Я нашел проблему.

My Homestead работает с Nginx http-сервером, поэтому файл .htaccess игнорируется.

Так что мне нужно отредактировать файл конфигурации в файле /etc/nginx/sites-enabled/mydomain.test, обновите его следующим образом:

location / {
    try_files $uri $uri/ /index.php?$query_string;

    // this is what I added:
    if (!-e $request_filename){
        rewrite ^(.*)$ /index.html break;
    }
}

Это решило проблему.

0 голосов
/ 01 мая 2019

Попробуйте это

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteRule ^index\.html$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . index.html [L]
</IfModule>
...