Deploy Angular 2 to Apache Server Deploy Angular 2 to Apache Server apache apache

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>