Website Shows 403 Forbidden Error After Migration to Virtualmin

Hi Virtualmin Community,

I recently migrated my website to a new server running Virtualmin, and now I’m getting a 403 Forbidden error when trying to access the site. Here’s what I’ve done so far:

  1. Verified that the files and folders were transferred correctly and have the appropriate permissions (755 for folders and 644 for files).
  2. Checked the Virtualmin settings for the domain, and everything seems to be configured correctly.
  3. Reviewed the .htaccess file, but nothing seems to block access.
  4. Looked at the Apache error logs, and I see this line repeatedly:

[client xxx.xxx.xxx.xxx] (13)Permission denied: access to / denied by server configuration

Could this be related to SELinux, missing modules in Apache, or incorrect user permissions in Virtualmin? Any guidance on troubleshooting this issue would be greatly appreciated!

Thanks for your help!

@glennjoe44,

Do you have an index file in the directory, ex:

index.html
index.php

Almost certainly not. We disable SELinux, by default, because it causes so many mysterious (to most users) problems in a virtual hosting environment.

Definitely not. There would be a syntax error when parsing the config files or htaccess file.

Virtualmin isn’t the web server, and is not involved in serving websites.

Is it a web application or static website?

Are the files owned by the domain owner user and group?

Try renaming and having no .htaccess

1 Like

Was the old server running Virtualmin? How did you migrate? Did you set up the domain first and import the existing data? Did the new site work prior to importing the new data?

Thank you for the suggestion! I renamed the .htaccess file, and the issue is now resolved. The site is accessible without any 403 errors. Furthermore, if you are into capcut video editing then you must know that capprocutapk is providing mod version of the capcut app. It seems there was something in the .htaccess causing the problem. Thanks again for your help!

1 Like

It is an old remedy (but still a good one) however if you are using an Apache webserver you may end up with other consequenses. that .htaccess might have been performing other critical steps on the website for it to function. So a far better move is to investigate the instruction in it to find out why + what for.

1 Like

This topic was automatically closed 8 days after the last reply. New replies are no longer allowed.