当我尝试为 angular2 应用程序设置带有 mod_rewrite 的 apache2 虚拟主机时,出现了奇怪的行为。
我没有使用 HashLocationStrategy,http://host.tld/#page
而是使用默认的 LocationStrategy http://host.tld/page
,这显然需要启用 mod_rewrite 并正确设置。
我尝试访问的本地 URL 是我的控制台在尝试加载某些组件时http://calendar.atlas.local/
显示一些(不是全部)请求,这很奇怪。http://www.calendar.atlas.local/
这是我的.htaccess
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^(.*) /index.html [NC,L]
</IfModule>
这是我在 OSX El Capitan 上为 apache2 编写的 .conf
<VirtualHost *:80>
DocumentRoot "/Library/WebServer/Dev/NG-CAL/"
ServerName calendar.atlas.local
ErrorLog "/private/var/log/apache2/calendar.local-error_log"
CustomLog "/private/var/log/apache2/calendar.local-access_log" common
<Directory "/Library/WebServer/Dev/NG-CAL/">
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
我不知道“www”从哪里来。