I encountered an error which seemed quite weird (at least to me).
I’ve been hosting a couple of Laravel apps on a shared server. Today, I noticed that these apps were not working, returning 403 errors.
Then, I saw that .htaccess files were wrongly configured.
Here’s the wrong .htaccess.
<FilesMatch ".*\.(phtml|php|PhP|php5|suspected)$">
Order Allow,Deny
Deny from all
</FilesMatch>
After the wrong code above was replaced with the following codeā¦
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# Removes index.php from ExpressionEngine URLs
RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
RewriteCond %{REQUEST_URI} !/system/.* [NC]
RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,NE,L]
# Directs all EE web requests through the site index file
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
</IfModule>
… the apps started to work again.
The question is: Is it possible for a file like .htaccess
to be changed in a shared server?
I contacted the hosting company, and the answer was…
- We noticed that you are on XXX hosting plan, we do not make any changes on customer files including .htaccess without informing.
- In case of .htaccess it is possible that changes can be appended to it in case of any PHP version or settings changes via cPanel >> PHP selector.
- It is also possible that in case of any application-level changes or plugin updates, the corresponding rules can get modified in .htaccess file too.
In my case, the error was probably caused by updating the PHP version.
Today’s lesson: updating PHP may change .htaccess files.