我需要有关 AngularJs 应用程序的帮助。我需要 AngularJS 和 Hashbang fallback 中的 HTML5Mode 的 htacess 文件。有人能帮我吗?因为我使用反斜杠时会出现 %2F。我一直在关注这个教程,但他们使用的是 express。 https://scotch.io/tutorials/angularjs-seo-with-prerender-io
HTML
<html lang="en" ng-app="WebApp">
<head>
<meta charset="UTF-8">
<base href="http://localhost/myapp/">
<meta name="fragment" content="!" />
</head>
这是我的主要内容
var app = angular.module('WebApp', ['ngRoute'])
app.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider){
$routeProvider.when('/', {
templateUrl : 'views/home.html',
controller: 'PageCtrl'
})
$routeProvider.when('/about', {
templateUrl : '/views/about.html',
controller: 'PageCtrl'
})
$routeProvider.otherwise({
redirectTo : '/'
});
$locationProvider.html5Mode(true);
$locationProvider.hashPrefix('!');
}]);
function PageCtrl($scope) {
// For this tutorial, we will simply access the $scope.seo variable from the main controller and fill it with content.
// Additionally you can create a service to update the SEO variables - but that's for another tutorial.
}
这是我试图访问控制正确的
RewriteEngine on
# Don't rewrite files or directories
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
# Rewrite everything else to index.html to allow html5 state links
RewriteRule ^ index.html#! [L]
答案1
问题在于 apache 和编码的斜杠。/ 被转换为 %2f,这是斜杠的代码。在 vhost 文件中允许使用编码的斜杠应该可以解决问题。