Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →If WordPress category links return 404 on Nginx, the usual fault is request routing: Nginx is not sending the category URL to WordPress’s front controller. Add the single-site fallback try_files $uri $uri/ /index.php?$args; in the active server block, then verify that PHP requests reach the correct PHP-FPM socket with the correct script path. If a PHP page is blank, treat the white screen as a symptom rather than a diagnosis: enable WordPress logging and read the WordPress, Nginx and PHP-FPM logs before changing plugins, themes or memory settings.
Antihost offers managed WordPress hosting with free migration, one-click staging and a 14-day free trial.
The repair has four independent checks: the virtual host must use the right document root, Nginx must fall back to index.php, PHP-FPM must execute the requested script, and WordPress’s permalink rules must be current. A successful permalink save cannot repair a wrong root, a missing fallback or a broken PHP-FPM connection.
As an Amazon Associate I earn from qualifying purchases.
Why category URLs fail on Nginx
A WordPress category archive is generated dynamically. A request such as /category/adventure/ normally does not correspond to a physical directory named adventure. WordPress receives the URL, resolves it as a category archive and renders the response through its front controller, index.php.
Apache installations often rely on a per-directory .htaccess file to perform that hand-off. Nginx does not read .htaccess; rewrite and fallback behavior must be declared in the Nginx server block that handles the site. Without a fallback, Nginx looks for a real file or directory, fails to find one and returns 404 before WordPress can process the category slug. The same failure affects post slugs, pages and other pretty-permalink URLs.
#1 Best Overall
- BLUE LIGHT BLOCKING GLASSES: Our blue light glasses for women boast UV400 protection, blocking harmful blue rays from computer screens. With these bluelight glasses women, you can enjoy gaming, reading, or watching TV with no worries of eye strain.
- EYE RELIEF: Our blue light glasses are engineered to reduce blurry vision or strain caused by prolonged screen time. These womens blue light glasses aid in better sleep by preventing blue light from disrupting your natural sleep cycle, helping you fall asleep faster and enjoy a more restful night's sleep, making them the perfect christmas present.
- COMFORTABLE: Crafted from durable material, our trendy blue light glasses for woman or blue light glasses men ensure long-lasting comfort. The high-transmittance lenses accessories, gamer gifts for men, help keep your eyes relaxed. Perfect stocking stuffers, gifts for gamers men, christmas gifts for men, halloween costumes.
- LIGHTWEIGHT: These clear blue light glasses feature a lightweight frame, meaning they’ll stay comfy for long-term wear. Perfect as blue blockers glasses for women or mens blue light glasses, these non-prescription fake glasses for men can be worn throughout the day. The blue light blocking glasses women feature polycarbonate HD lenses, which are anti-reflective and restore true color.
- WORRY-FREE PURCHASE: If you experience any issues, our support team is ready to assist you quickly. These are the perfect costume glasses for cosplay dressing up.
What the Nginx request must do
For a normal single-site installation, the request path follows this sequence:
- Nginx selects the active virtual host by the requested domain and listens on the expected address and port.
- The virtual host maps the site to the directory containing
wp-admin,wp-content,wp-includesandindex.php. - The root location checks whether the requested path is an existing file or directory.
- If neither exists,
try_filesinternally redirects the request to/index.phpwhile preserving the query string. - The PHP location passes that script to PHP-FPM and sets
SCRIPT_FILENAMEto the real file on disk. - WordPress loads its rewrite rules and generates the category archive.
The essential single-site rule is:
location / {
try_files $uri $uri/ /index.php?$args;
}
$uri and $uri/ allow existing assets and directories to be served normally. The final target sends virtual URLs to WordPress, and ?$args preserves query parameters that may be needed by plugins or other requests.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Inspect the active virtual host before editing
Many apparent WordPress problems are caused by editing a configuration file that Nginx never loads. First identify the server block that answers the affected domain and confirm its document root.
- The
rootdirective must point to the WordPress directory, not its parent, an old deployment or a staging copy. - The directory should contain
index.phpand the standard WordPress directories. - The server block should include
index index.phpso directory requests can resolve to the WordPress entry point. - The domain, listen address and port must match the request that returns the 404 or blank response.
- If several virtual hosts share an address, check which one is the default and which one matches the requested host name.
On systems where the command is available, nginx -T prints the complete loaded configuration. Use it to locate duplicate location / blocks, an unexpected default server or a second PHP location that takes precedence. Do not assume that a file in a configuration directory is active until the loaded configuration confirms it.
Use a complete, internally consistent server block
The following is a pattern for a conventional single-site installation. Replace the document root, host name and PHP-FPM endpoint with values that exist on your server.
server {
server_name example.test;
root /var/www/example;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ .php$ {
try_files $uri =404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/run/php/php-fpm.sock;
}
}
The socket shown is an example placeholder, not a universal path. Distribution packages and PHP versions use different socket names, and some servers use a TCP upstream instead. Obtain the endpoint from the PHP-FPM pool configuration or the service configuration currently used by the site. A socket that does not exist, is owned by an inaccessible user or belongs to another PHP installation can produce an upstream error or an empty response even when the Nginx rewrite is correct.
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Fix the driver behind crashes, sound loss and screen glitches3Clear out junk files and repair common Windows errorsLikewise, $document_root$fastcgi_script_name must resolve to the actual PHP file. If the root points at the wrong directory, or if a custom parameter maps the script to a nonexistent path, PHP-FPM cannot execute WordPress. Some distributions include a file that already defines SCRIPT_FILENAME; avoid creating two conflicting definitions. Compare the active include and the PHP location as a whole.
Rank #2
- WINDEX GAMING WIPES: effortlessly clean all your gaming gear and gaming electronics in one easy step with our new Windex Gaming Wipes
- AMMONIA FREE: our ammonia-free formula is safe to use on all of your favorite gaming equipment like consoles, headsets, controllers, screens, keyboards, and more
- PRE-MOISTENED WIPES: each wipe instantly removes dust, dirt, and stubborn smudges and fingerprints leaving a streak-free shine
- ANTI-STATIC: great for cleaning and wiping down your gaming gear and electronics leaving behind no visible residue
- COMPACT RESEALABLE PACKAGE: store your pack of Windex Gaming Wipes anywhere in your home for whenever a quick and easy wipedown is needed
Step-by-step repair for category 404s
1. Confirm the failure is a permalink request
Open the category URL and a known static file, such as an image or stylesheet. If static files work but category URLs return 404, routing to WordPress is the first suspect. If static files also fail, correct the virtual host root or permissions before investigating permalinks. Test the home page and a known post URL as well; a broad failure indicates a front-controller problem rather than one damaged category.
2. Correct the document root and index setting
In the active server block, set root to the directory that contains the live WordPress files and add index index.php. Check the path on disk rather than relying on a symlink or a deployment variable whose target may have changed. A root that serves an old copy can make the WordPress dashboard appear normal while the public request is handled by a different installation.
3. Add the fallback in location /
Use the exact single-site pattern:
location / {
try_files $uri $uri/ /index.php?$args;
}
Place it in the server block that serves the affected domain. Do not put it only in an unrelated virtual host. Do not replace the final /index.php?$args with a guessed category path: WordPress must receive the original path so it can select the correct archive.
PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minute4. Verify the PHP location
Check four items together:
- The regular expression location matches PHP requests.
- The FastCGI parameter include is present and is the one expected by the installed Nginx package.
SCRIPT_FILENAMEresolves to the same document root used by the server block.fastcgi_passpoints to the running PHP-FPM socket or upstream, with permissions that allow Nginx to connect.
A wrong socket usually appears in the Nginx error log as an inability to connect to the upstream. A wrong script path can produce a “primary script unknown” style error. Both are PHP hand-off problems, not WordPress permalink problems.
5. Validate and reload Nginx safely
Run the configuration test before reloading:
nginx -t
Proceed only when the test reports a valid configuration. Then reload the service using the service manager appropriate to the operating system, for example:
systemctl reload nginx
A reload applies the new configuration without needlessly terminating existing connections. If the test fails, keep the previous working configuration, read the reported file and line, and correct syntax or duplicate directives before trying again.
6. Refresh WordPress’s rewrite state
In the WordPress dashboard, open Settings > Permalinks and click Save Changes. You do not need to change the selected permalink structure. Saving causes WordPress to rebuild its rewrite state and is the documented first reset for permalink failures.
Recommended Free Tools
Rank #3
- Ergonomic & Adjustable Design: Fight "text neck" and improve your posture. Designed for comfort, it offers an adjustable height (7.1in-8.5in) (1.4in adjustable range) and angle (5°-85°) Please note: cell phone stand is only 9 inches tall—the length of a standard pencil
- Without blocking subtitles Perfect for office desk Tiktok Face Time Zoom video—this is the ultimate kitchen desk essential for phones! Perfect viewing experience while reducing neck back strain, A must-have for gamers streamers desk, and anyone who values both style and support!
- Sleek & Stable Design fits Otterbox Case: Say goodbye to bent cables, tangles, and tip-overs! LISEN’s stylish adjustable desk phone holder features a built-in charging hole and smart cable management, keeping your phone secure and your workspace clutter-free cool gadgets for men
- ANTI-SLIP DESIGN free hands: The under 10.00 items easy gadgets back and the bottom of this kitchen essentials for women are fully covered by anti-skid silicone, which LISEN stand up desk decor can provide maximum protection device from any scratches and slides
- Your Perfect Viewing Companion:If your product arrives damaged or breaks within 365 days, reach out to LISEN for a quick and hassle-free solution. Struggling with assembly, like tightening the screw? We’ve got your back! Your experience matters to us. (Product including: phone Holder stand*1, screw*1, hexagon screwdriver*1, specification*1)
This step is necessary when WordPress’s stored rules are stale, but it cannot compensate for Nginx routing that never reaches index.php. If the category still returns 404 after the save, return to the active server block and logs instead of repeatedly saving the same screen.
7. Test with a controlled sequence
- Load the home page.
- Load one existing post by its pretty URL.
- Load the affected category archive.
- Load a second category or a page with a pretty URL.
- Check a static asset to ensure normal file serving still works.
- Repeat the tests in a private browser window or with a cache-bypass request if a page cache is present.
If only one category fails while other archives work, inspect that category’s slug, parent relationship and content assignment in WordPress. If every pretty URL fails, keep the investigation focused on Nginx fallback, the document root and the permalink state.
Why a PHP page is blank
A white or empty page is an output symptom. It does not identify whether PHP stopped on a fatal error, WordPress could not complete a database query, a plugin or theme triggered an incompatibility, or Nginx sent the request to the wrong script. Browser output is often deliberately suppressed in production, so the absence of visible text is not evidence that no error occurred.
Routing mistakes can also look blank. If the request reaches an unexpected PHP file, PHP-FPM cannot open the mapped script, or the upstream closes the connection, the browser may show an empty response while the useful explanation is recorded in a server log.
Free tools Windows power users keep installed
One-click scans. No signup required.
Turn on logging without displaying errors publicly
Temporarily enable WordPress logging in wp-config.php, above the line that says WordPress editing should stop. Keep display disabled on a public site:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
@ini_set('display_errors', 0);
Reproduce the blank page once, then inspect wp-content/debug.log. The timestamp and requested URL help connect the WordPress entry to the corresponding Nginx and PHP-FPM entries. After troubleshooting, restore the site’s normal debugging settings; leaving verbose debugging enabled can expose paths, queries or other operational details to visitors if display settings are later changed.
Also inspect the Nginx error log and the PHP-FPM log for the pool serving this virtual host. Log locations vary by operating system and package, so use the paths configured by your installation rather than assuming a particular distribution layout. A useful live view on systems that use the conventional Nginx path is:
Rank #4
- Easy Installation: Our gaming lights have been designed to enhance your entertainment experience. Simply position the led light bar next to your TV or game console to create a game room environment with ease. They come with USB power and a 60 inch cord for direct mounting and mobility
- Audio Syncing & Extensive Mode: The built-in high-sensitivity music sensor allows you to sync the TV led lights to your favorite music. Lights react and move to the beat of music, film and game audio, creating an incredible immersive sound and light experience – and all without the need for an additional hub. You can choose from 64+ patterns, including strobe, illusion, jump, energy, gradient, running, chasing, fluttering mode etc. Each mode can be applied to different scenes
- 64+ Chasing IC+RGB & W Effect: The independent control design of IC+RGB and white all-in-one multifunctional rgbw led bar lights monitor backlight allows you to easily switch the led lights for desk between IC+RGB and white to enjoy a variety of lighting effects, you can choose white lighting mode with high brightness for better illumination when working, etc. Choose IC+RGB lighting mode when you need to create an entertaining atmosphere for the light show, 16 million colours of Color changing rgb light bar let you dance to the beat and create a dynamic party atmosphere
- Dynamic and Dimmable Lights: 1%-full brightness free brightness adjustment gives you the flexibility to adjust dimmable led light bar for room decorations or a variety of occasions
- USB Powered: USB light bars for room can be powered by powernank, usb charger, TV, Monitor, laptop PC mainframe, making behind TV led lighting bar easy to install in any location.TV led lights are powered by the TV usb interface / PC mainframe, can be turned on/off synchronously with TV / PC
tail -f /var/log/nginx/error.log
Look for the event generated at the exact time of the request. A WordPress fatal error, a PHP-FPM worker failure, an upstream connection error and a missing script each require a different fix.
Interpret the evidence before changing code
| Observed result | Most likely area | Next check |
|---|---|---|
| Category and post URLs return 404, while existing files load | Nginx front-controller routing | Confirm the active location / contains try_files $uri $uri/ /index.php?$args;. |
| Home page works, but every pretty URL fails | Fallback or rewrite state | Verify the loaded server block, then save Settings > Permalinks. |
| PHP requests report an upstream connection failure | PHP-FPM endpoint or permissions | Check that the configured socket or upstream exists, is running and is reachable by Nginx. |
| Nginx reports that the primary script cannot be found | Document root or SCRIPT_FILENAME |
Resolve the mapped path and compare it with the real location of index.php. |
| WordPress debug log contains a fatal error | PHP code, plugin, theme or compatibility | Use the file, line and component named in the log to isolate the failing code. |
| Debug log shows a database connection or query failure | Database credentials, availability or query-producing code | Check the database service and credentials, then isolate the component issuing the failing query. |
| No useful WordPress entry, but Nginx or PHP-FPM logs show errors | Request never completed WordPress execution | Fix the upstream, script path or PHP runtime before changing WordPress settings. |
Isolate plugins and themes when the log points to WordPress code
When debug.log names a plugin file, deactivate that plugin and retest the same URL. If the dashboard is inaccessible, use the site’s established recovery method or temporarily rename the specific plugin directory through the server’s file access; record the change so it can be reversed. Do not rename the entire content directory as a first step, because doing so removes the evidence and changes more variables than necessary.
For a theme-related fatal error, switch to an installed default theme from the dashboard or the site’s administrative recovery method, then retest. A category archive can exercise custom archive templates, taxonomy queries or code that is not used on the home page, so a theme conflict may appear only on category URLs.
Deactivate one suspect at a time, reproduce the fault, and reactivate unaffected components after each test. If the blank page disappears, update or replace the component only after confirming that it is the logged cause. If no component changes the result, return to PHP version compatibility, memory limits, file integrity and server logs.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Check PHP compatibility, memory and files
PHP compatibility
A PHP version change can expose deprecated behavior or turn warnings into fatal errors in older plugins and themes. The PHP-FPM service used by Nginx may not be the same PHP version used by a command-line shell, so verify the version of the FPM pool serving the site. Match the logged error to the component and its supported PHP range before changing the server-wide runtime.
Memory limits
A memory exhaustion entry identifies a resource limit, not a reason to increase it blindly. First isolate the operation that consumes memory, such as a plugin task or a custom archive query. Confirm the effective PHP and WordPress memory settings for the web request, then raise the limit only when the server has capacity and the component genuinely requires it. A higher limit can hide an inefficient query while increasing the impact of concurrent requests.
WordPress file integrity
If core files are missing, partially deployed or unreadable, verify the WordPress files against a clean copy of the same release and preserve wp-content and configuration data. Check ownership and permissions as well as file contents. Do not overwrite a live installation indiscriminately: preserve a backup and verify that the replacement matches the site’s version.
Best Value
- Compatible with Wide Screens - To ensure compatibility with the dual monitor mount, your each monitor must meet three conditions at the same time: First, computer screens size range: 13 to 32 inches. Second, screen weight range: 4.4 to 19.8 lbs. Third, the back of the monitor screen must have VESA mounting holes with a pitch of 75x75mm or 100x100mm.
- Regarding the compatibility with desks - Your desk must meet three conditions at the same time: First, desk material: Only wooden desks are recommended, plastic or glass desks cannot be used. Second, desk thickness range: 0.59" - 3.54". Third, the bottom of the desk should not have any cross beams or panels, as this will interfere with installation. We recommend carefully checking that your desk and monitors meets all above conditions before purchasing.
- Dual C-Clamp Hold - Worried your dual monitors might wobble or slip? Our upgraded base uses a larger platform plus a dual C-clamp structure to lock the dual monitor arm firmly to your desk. Each arm safely keeps your screens steady while you type, click and game—no shaking, no sliding, just a clean and secure setup you can trust every day. It also provides Grommet Mounting installation choice, both options ensure stable and secure fixation for your 0.59" - 3.54" desk.
- Full-Motion Adjustment For Comfortable View - Pull the screen closer when you’re deep in a spreadsheet, push it back to watch videos, or rotate to portrait for coding — moving everything smoothly with just one hand. The monitor stand offers +85°/-50° tilt, ±90° swivel and 360° rotation. Raise your monitor up to 15.75″ to support a healthy sitting posture. Whether you’re working from home, gaming through the night, or switching between video calls and documents, getting the screens to your natural line of sight helps relieve neck, shoulder and back strain so you can stay focused longer with less fatigue.
- Keep Your Desk Organized: By lifting both screens off the desktop, this dual monitor stand opens up valuable space for your keyboard, notebook, docking station or a simple, clutter-free work area. Built-in cable management guides wires along the arms, keeping cords out of sight and out of the way. Enjoy a tidy, modern workstation that looks as good as it feels to use.
Common fixes that do not solve the underlying fault
Saving permalinks repeatedly
Saving the Permalinks screen refreshes WordPress’s rewrite state. It cannot add an Nginx fallback, change the selected virtual host, create a missing PHP-FPM socket or repair a wrong script filename. Repeating it is useful only when the logs and routing checks support a stale WordPress rule as the remaining cause.
Adding Apache directives to Nginx
Directives copied from an .htaccess file do not become valid Nginx configuration. Translate the intended behavior into Nginx syntax in the server block and validate with nginx -t. Nginx will not read the Apache file automatically.
Changing the PHP socket at random
Guessing a socket path can turn a working PHP hand-off into an upstream failure. Identify the running PHP-FPM pool and use its configured endpoint. If more than one PHP version is installed, make sure the socket belongs to the version whose extensions and WordPress compatibility you intend to use.
Displaying errors to visitors
Enabling visible PHP or WordPress errors can reveal filesystem paths and configuration details. Log errors while keeping display disabled, reproduce the problem, and remove temporary debugging changes after the cause is fixed.
Clearing every cache first
Cache invalidation is useful after a routing repair, but it does not correct a server block or PHP-FPM fault. Establish that a fresh request reaches WordPress, then purge page and object caches so an old 404 is not mistaken for a current response.
A verification checklist
- The active virtual host is confirmed with the requested domain, listen address and loaded configuration.
- The document root contains the live WordPress
index.phpand core directories. index index.phpis present for the server block.location /contains the exact front-controller fallback with?$args.- The PHP location includes the expected FastCGI parameters.
SCRIPT_FILENAMEresolves to the real script path.- The PHP-FPM socket or upstream exists, is running and is reachable by Nginx.
nginx -tsucceeds before the service is reloaded.- Settings > Permalinks > Save Changes has been used once after routing is correct.
- WordPress, Nginx and PHP-FPM logs have been checked at the time of a reproduced request.
- Any plugin, theme, PHP-version, memory or file-integrity change is tied to an error found in those logs.
- Temporary debugging and isolation changes are reverted after testing.
When the standard fallback is not the right configuration
The rule shown here is for a conventional single-site WordPress installation. Multisite, subdirectory installations, language-specific front controllers, reverse-proxy arrangements and deliberately restricted PHP execution can require additional locations or different rewrite rules. Do not transplant the single-site block unchanged when the site’s URL structure depends on those features. Preserve the routing principle—virtual WordPress URLs must reach the intended front controller—but derive the exact rules from the installation’s topology.
Similarly, a site that serves WordPress from a subdirectory must use that subdirectory consistently in root, location matching and the front-controller target. Mixing a filesystem path with a URL prefix is a common way to create a script-path error or a loop. Confirm the public URL and on-disk path separately before editing directives.
How to decide what to fix first
- Start with routing for 404s. If static files work and virtual URLs fail, inspect the active server block and
try_files. - Start with PHP-FPM evidence for blank output. An upstream or script-path error must be fixed before WordPress settings can help.
- Use the WordPress log for application faults. A named plugin, theme, database or memory error gives you a bounded next test.
- Refresh permalinks after infrastructure is correct. This removes stale rewrite state without masking server configuration problems.
- Retest one URL at a time. A home page, post, category and static file reveal which layer changed.
Following that order prevents the two failures from being conflated. A category 404 is normally a request-routing problem until proven otherwise; a blank PHP page is normally an execution or application problem until logs show that the request never reached PHP.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




