A
500 Internal Server Error in WordPress—specifically when clicking on subpages or links like /about-us, /contact, or blog posts while the homepage loads fine—typically stems from one of two common causes:- Exhausted PHP Resource Limits (PHP Memory Limit or Execution Time timeouts).
- Corrupted or Misconfigured
.htaccessRouting Rules (often triggered by language subdirectories like/fr/, plugin updates, or broken permalinks).
Follow the steps below in order to resolve the error quickly.
Step 1: Contact Support to Increase PHP Resource Limits
Note for Customers: PHP directive controls are managed at the server level for security and server performance. Customers do not have direct access to modify PHP directives in Plesk. Please contact our support team, and we will perform these adjustments for you!
When you reach out, our support team will perform the following updates on your account:
- Navigate to Domains > yourdomain.com > PHP Settings inside your hosting container.
- Locate and adjust your account's PHP directives to optimal values:
memory_limit: Change to256M(or512Mfor resource-heavy sites).max_execution_time: Increase to60or120seconds.max_input_time: Increase to60seconds.
- Save and apply the new configuration to your site.
- Test your subpages to confirm if an exhausted memory limit was causing the 500 error.
Result: If your subpages load normally after we apply these changes, the issue was an exhausted memory limit. If the 500 error persists after updating PHP settings, proceed to Step 2.
Step 2: Reset the .htaccess File (Self-Serve)
If PHP limits are sufficient, the URL rewrite rules inside your
.htaccess file are likely corrupted. You can reset this configuration directly inside your Plesk File Manager.A. Backup the Existing .htaccess
- Log in to Plesk and go to Files > httpdocs (or your root site folder).
- Locate
.htaccess. (If hidden, click Settings in the top right and check Show hidden files). - Rename
.htaccessto.htaccess_bak.
B. Apply Standard WordPress Rewrite Rules
- If
.htaccessalready exists: Click on the.htaccessfile to open it in the Text Editor, delete all existing code, and paste the clean code block below.
- If
.htaccessis completely missing: Click + Create File, name it.htaccess, and paste the clean code block below.
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPressClick Save and OK.
Step 3: Refresh WordPress Permalinks
To permanently register the clean configuration:
- Log in to your WordPress Dashboard (
[yourdomain.com/wp-admin]).
- Go to Settings > Permalinks.
- Scroll to the bottom and click Save Changes (no settings need to be altered—clicking save flushes and regenerates the rewrite rules).
Comments
0 comments
Please sign in to leave a comment.