I am wondering if I have the .htaccess conversion to OLS correct. I am getting a 404 error page when I try to load the website. Any insights are appreciated.
The website contains two .htaccess files:
- /vendor/phenx/php-font-lib/.htaccess
- ./.htaccess
The /vendor/phenx/php-font-lib/.htaccess has one rule in it and it is commented out so I just skipped the file.
The ./.htaccess contains the following information:
`# Prevent Directory Listing
IndexIgnore *
# Prevent Directory Listing
Options -MultiViews -Indexes
RewriteEngine On
# Prevent Direct Access to Protected Files
Order deny,allow
Deny from all
# Prevent Direct Access To Protected Folders
RewriteRule ^(app|bootstrap|config|database|resources|routes|storage|tests)/(.*) / [L,R=301]
# Prevent Direct Access To modules/vendor Folders Except Assets
RewriteRule ^(modules|vendor)/(.*)\\.((?!ico|gif|jpg|jpeg|png|js|css|less|sass|font|woff|woff2|eot|ttf|svg).)*$ / [L,R=301]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
`
```
I created a static context / with a directory of $DOC_ROOT:
`context / {
location $DOC_ROOT
allowBrowse 1
autoIndex 0
rewrite {
enable 1
# Prevent Direct Access To Protected Folders
RewriteRule ^/(app|bootstrap|config|database|resources|routes|storage|tests)/(.*) / [L,R=301]
# Prevent Direct Access To modules/vendor Folders Except Assets
RewriteRule ^/(modules|vendor)/(.*)\\.((?!ico|gif|jpg|jpeg|png|js|css|less|sass|font|woff|woff2|eot|ttf|svg).)*$ / [L,R=301]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/ index.php [L]
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
}
addDefaultCharset off
}`
```
To take care of the FilesMatch I created another static context with a regular expression:
`context /(?i)(^artisan$|.env|.log) {
location $DOC_ROOT
allowBrowse 0
addDefaultCharset off
}`
```
All of the options are taking care of except -MultiViews. Since OLS does not support MultViews, there is nothing for me to do.