[Solved] Prestashop blank page error caused by .htaccess rewrite

Under Apache server, the .htaccess page governances all rewrite rule. The .htaccess for Prestashop is auto-generated under root directory when the friendly URL is enabled. As such, all child page should have a short and friendly URL.

Recently, I came across an issue. When the “Friendly URL” is enabled, the Prestashop front page is fine but all other child pages show banks. Or, sometimes, even the front page is not working, just show a blank page. The problem is caused by the apache rewrite setting.

I found the issue can be resolved by adding additional rules to the

/etc/apache2/sites-availabe/mywebsite.conf

Add the following code to the file,

RewriteEngine on
RewriteCond %{SERVER_NAME} =www.unicoq.com [OR]
RewriteCond %{SERVER_NAME} =unicoq.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

The final file,

<VirtualHost *:80>
        # The ServerName directive sets the request scheme, hostname and port that
        # the server uses to identify itself. This is used when creating
        # redirection URLs. In the context of virtual hosts, the ServerName
        # specifies what hostname must appear in the request's Host: header to
        # match this virtual host. For the default virtual host (this file) this
        # value is not decisive as it is used as a last resort host regardless.
        # However, you must set it for any further virtual host explicitly.
        #ServerName www.example.com

        ServerAdmin info@unicoq.com
        ServerName www.unicoq.com
        ServerAlias unicoq.com
        Redirect permanent / https://unicoq.com

        DocumentRoot /var/www/html/unicoq.com/public_html

        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        # For most configuration files from conf-available/, which are
        # enabled or disabled at a global level, it is possible to
        # include a line for only one particular virtual host. For example the
        # following line enables the CGI configuration for this host only
        # after it has been globally disabled with "a2disconf".
        #Include conf-available/serve-cgi-bin.conf

RewriteEngine on
RewriteCond %{SERVER_NAME} =www.unicoq.com [OR]
RewriteCond %{SERVER_NAME} =unicoq.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>


Leave a Reply