.htaccess problems after enabling SSL [SOLVED]
I recently installed a fresh version of Vanilla 2.8.3 on a Linux host. Totally configured the site, all working perfectly. When I originally installed, I said "use Vanilla's .htaccess" because I didn't have any custom one on my site till that point.
Earlier today, I had to modify the .htaccess file at my web root, to redirect all http requests to https, as I now have access to an SSL certificate with my new hosting environment.
Now when I navigate to mysite.com/forum/ , I get http Error 500, "This page isn't working."
I tried appending the contents of the .htaccess file in the /forum folder to the bottom of the one at my web root, but that broke the forum AND my site! How do I best address this?
Thanks in advance....
0
Comments
Could you share your current .htaccess file?
Thanks and sure. Here's what's in the .htaccess file at the root of my public_html folder:
RewriteEngine On RewriteCond %{HTTP_HOST} mysite\.com [NC] RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.mysite.com/$1 [R,L] RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.=mysite.com/$1 [R=301,L] RewriteOptions inherit RewriteEngine on Header set content-Security-Policy: upgrade-insecure-requestsThe .htaccess file in my Vanilla root at /forum is the unmodified original one I believe:
# Original # If you modify this file then change the above line to: # Modified <IfModule mod_rewrite.c> RewriteEngine On #### # Certain hosts may require the following line. # If vanilla is in a subfolder then you need to specify it after the /. # (ex. You put Vanilla in /forum so change the next line to: RewriteBase /forum) #### #RewriteBase / # Make sure that / doesn't try to go to index.php without a rewrite :) DirectoryIndex disabled #### # Deny access to certain directories that SHOULD NOT be exposed. #### RewriteRule (^|/)\.git - [L,R=403] RewriteRule ^cache/ - [L,R=403] RewriteRule ^cgi-bin/ - [L,R=403] RewriteRule ^uploads/import/ - [L,R=403] RewriteRule ^vendor/ - [L,R=403] #### # Prevent access to any php script by redirecting the request to /index.php # You can add an exception by adding another RewriteCond after this one. # Example: RewriteCond %{REQUEST_URI} !^/yourscriptname.php$ # You can comment out this section if it causes you problems. # This is just a nice to have for security purposes. #### RewriteCond %{REQUEST_URI} !/index.php$ RewriteRule (.+\.php) [E=X_REWRITE:1,E=X_PATH_INFO:/$1,L] #### # Redirect any non existing file/directory to /index.php #### RewriteCond %{REQUEST_FILENAME} !-f RewriteRule (.*) index.php [E=X_REWRITE:1,E=X_PATH_INFO:/$1,L] #### # Add the proper X_REWRITE server variable for rewritten requests. #### RewriteCond %{ENV:REDIRECT_X_REWRITE} .+ RewriteCond %{ENV:REDIRECT_X_PATH_INFO} (.+) RewriteRule ^index\.php - [E=X_REWRITE:1,E=!REDIRECT_X_REWRITE,E=X_PATH_INFO:%1,E=!REDIRECT_X_PATH_INFO,L] </IfModule> <IfModule mod_headers.c> <FilesMatch "(?<!embed)\.(css|js|woff|ttf|eot|svg|png|gif|jpeg|jpg|ico|swf)$"> Header set Cache-Control "max-age=315360000" Header set Expires "31 December 2037 23:59:59 GMT" </FilesMatch> </IfModule>Actually, I think I had extra, redundant stuff in the .htaccess file at the root of my public_html folder. Here's what it is now:
RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.mysite.com/$1 [R=301,L]Following up on my own - this is now SOLVED, and was self-inflicted.
I had inadvertently blown away the contents of the .htaccess file that specified that PHP 7.1 should be used on the site; therefore, PHP had reverted to v5.4 or similar. As soon as I replaced the code that ensures that 7.1 is used, everything started working normally again.
Sorry for the noise!
Thanks for posting the resolution.