2015-08-03 4 views
1

У меня есть сайт angularJS на сервере lighttpd, но режим html5 не работает (ошибка 404), когда я обновляю или делаю прямую ссылку. У меня есть локальный сервер, на котором работает Apache, и нет проблемы с выражением перезаписи в .htaccess. Это код Apache:lighttpd и AngularJS html5 mode

<IfModule mod_rewrite.c> 
    Options +FollowSymlinks 
    #Options +SymLinksIfOwnerMatch 
    RewriteEngine On 
    RewriteRule !\.\w+$ index.html [L] 
</IfModule> 

и это содержание lighttpd.conf

server.modules = (
     "mod_access", 
     "mod_alias", 
     "mod_compress", 
     "mod_redirect", 
     "mod_rewrite", 
) 

server.document-root  = "/var/www/html" 
server.upload-dirs   = ("/var/cache/lighttpd/uploads") 
server.errorlog    = "/var/log/lighttpd/error.log" 
server.pid-file    = "/var/run/lighttpd.pid" 
server.username    = "www-data" 
server.groupname   = "www-data" 
server.port     = 80 


index-file.names   = ("index.php", "index.html", "index.lighttpd.html$ 
url.access-deny    = ("~", ".inc") 
static-file.exclude-extensions = (".php", ".pl", ".fcgi") 

compress.cache-dir   = "/var/cache/lighttpd/compress/" 
compress.filetype   = ("application/javascript", "text/css", "text/htm$ 

# default listening port for IPv6 falls back to the IPv4 port 
include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port 
include_shell "/usr/share/lighttpd/create-mime.assign.pl" 
include_shell "/usr/share/lighttpd/include-conf-enabled.pl" 

$HTTP["host"] == "myweb.io" { 
    server.document-root = "/var/www/html/" 
    url.rewrite-once = ("!\.\w+$" => "/index.html") 
} 

Я обыскал все в интернете и я ничего об этом не нашел. Я не знаю, правильно ли я написал регулярное выражение, или я поставил его в неправильное место.

ответ

0

Просто установив следующие сделал трюк для меня: (нет необходимости mod_rewrite)

server.error-handler-404 = "/index.html" 

Однако, будьте осторожны очевидных ошибок в более старые версии, как указано в docs.

Смежные вопросы