Перезапись URL с помощью htaccess вызывает ошибку 404 - AngularJS html5 mode - PullRequest
2 голосов
/ 28 июня 2019

Ошибка углового обновления страницы js 404 после удаления # и!с URL

Я работаю над угловым (1.7.5) проектом, в котором я хочу удалить # и!для этого я использую приведенный ниже код

myApp.config(['$locationProvider', function ($locationProvider) {
     $locationProvider.html5Mode(true);
}]);

и добавляю базовый тег в index.html в корневую папку

<base href="/myApp/">

и файл .htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !index
RewriteRule (.*) index.html [L]

наконец, я удалил # и!из URL, но проблема в том, когда я обновляю страницу или открываю тот же URL в новой вкладке, страница получает ошибку 404,

http://localhost/dev/ ----- works fine

, но

http://localhost/dev/login ----404 error 

Я не знаю, какрешить проблему, помогите мне спасибо.

Ответы [ 2 ]

0 голосов
/ 28 июня 2019

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

RewriteEngine On  
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d
RewriteRule ^ - [L]

RewriteRule ^ /index.html [L]
0 голосов
/ 28 июня 2019

Попробуйте изменить правила .htaccess следующим образом:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^ index.php [L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...