Deploy Angular 2 to Apache Server
Create .htaccess
file in the root folder and paste this in .htaccess
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.html$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.html [L]</IfModule>
It appears i was missing this in my /etc/apache2/sites-enabled/000-default.conf
file. After adding this and restarting apache
, website runs fine.
<Directory "/var/www/html/dist"> AllowOverride All</Directory>
1) Change base tag in index.html file
<base href="./">
2) Build Project:
ng build --prod --base-href /myproject/
3) Add your dist files in "/usr/local/apache2/htdocs/myproject/"
4)On Apache Server 2.4 (httpd)In File: /usr/local/apache2/conf/httpd.conf setup "FallbackResource"
<Directory "/usr/local/apache2/htdocs"> ... FallbackResource /myproject/index.html</Directory>
full file "/usr/local/apache2/conf/httpd.conf":
ServerRoot "/usr/local/apache2"Listen 80LoadModule mpm_event_module modules/mod_mpm_event.soLoadModule authn_file_module modules/mod_authn_file.soLoadModule authn_core_module modules/mod_authn_core.soLoadModule authz_host_module modules/mod_authz_host.soLoadModule authz_groupfile_module modules/mod_authz_groupfile.soLoadModule authz_user_module modules/mod_authz_user.soLoadModule authz_core_module modules/mod_authz_core.soLoadModule access_compat_module modules/mod_access_compat.soLoadModule auth_basic_module modules/mod_auth_basic.soLoadModule reqtimeout_module modules/mod_reqtimeout.soLoadModule filter_module modules/mod_filter.soLoadModule mime_module modules/mod_mime.soLoadModule log_config_module modules/mod_log_config.soLoadModule env_module modules/mod_env.soLoadModule headers_module modules/mod_headers.soLoadModule setenvif_module modules/mod_setenvif.soLoadModule version_module modules/mod_version.soLoadModule unixd_module modules/mod_unixd.soLoadModule status_module modules/mod_status.soLoadModule autoindex_module modules/mod_autoindex.so<IfModule !mpm_prefork_module> #LoadModule cgid_module modules/mod_cgid.so</IfModule><IfModule mpm_prefork_module> #LoadModule cgi_module modules/mod_cgi.so</IfModule>LoadModule dir_module modules/mod_dir.soLoadModule alias_module modules/mod_alias.soLoadModule rewrite_module modules/mod_rewrite.so<IfModule unixd_module>User daemonGroup daemon</IfModule>ServerAdmin you@example.com<Directory /> AllowOverride none Require all denied</Directory>DocumentRoot "/usr/local/apache2/htdocs"<Directory "/usr/local/apache2/htdocs"> Options Indexes FollowSymLinks AllowOverride None Require all granted FallbackResource /myproject/index.html</Directory><IfModule dir_module> DirectoryIndex index.html</IfModule><Files ".ht*"> Require all denied</Files>ErrorLog /proc/self/fd/2LogLevel warn<IfModule log_config_module> LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common <IfModule logio_module> LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio </IfModule> CustomLog /proc/self/fd/1 common</IfModule><IfModule alias_module> ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"</IfModule><IfModule cgid_module></IfModule><Directory "/usr/local/apache2/cgi-bin"> AllowOverride None Options None Require all granted</Directory><IfModule headers_module> RequestHeader unset Proxy early</IfModule><IfModule mime_module> TypesConfig conf/mime.types AddType application/x-compress .Z AddType application/x-gzip .gz .tgz</IfModule><IfModule proxy_html_module>Include conf/extra/proxy-html.conf</IfModule><IfModule ssl_module>SSLRandomSeed startup builtinSSLRandomSeed connect builtin</IfModule>