Use DocumentRoot when the URL directory is physically inside the site tree. Use an Alias when the URL should point to a directory elsewhere on disk, and authorize that target with a matching <Directory> block. The correct choice determines the filesystem path Apache uses, the permissions it needs, and how you troubleshoot errors such as 403 and 404 responses.
Need a server to try this on? Antihost offers Linux VPS plans with NVMe storage, full root access and a 14-day free trial.
Choose the mapping that matches your filesystem
Apache has two normal ways to make a URL subdirectory available from a name-based virtual host:
As an Amazon Associate I earn from qualifying purchases.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Scan for outdated or missing drivers - takes under a minuteDriver Scan →| Situation | Directive | How Apache maps the request | Operational profile |
|---|---|---|---|
| The directory is below the virtual host’s document tree | DocumentRoot |
Apache appends the URL path to the document root unless another directive, such as Alias, overrides that mapping. |
Simplest layout and usually easiest to move between servers. |
| The directory is somewhere else on the server | Alias plus a matching <Directory> |
The selected URL prefix is translated directly to the external filesystem path. | Useful when the public URL and physical storage location must differ; requires deliberate access control. |
For example, if /srv/www/example/app/ is inside /srv/www/example, a request for /app/index.html naturally resolves below that DocumentRoot. If the application lives at /srv/apps/myapp/, an Alias can expose it at the same public URL without moving the files. An Alias is specifically intended for documents stored locally outside the DocumentRoot.
The practical rule is to decide where the files belong first, then choose the directive. Do not use an Alias merely because the URL contains a subdirectory name; a normal child directory needs no Alias. Conversely, changing DocumentRoot to accommodate one external application can accidentally change the mapping for every other URL in the virtual host.
#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.
How Apache builds the effective path
For an ordinary request with no matching Alias, Apache takes the path portion of the URL and appends it to the selected virtual host’s DocumentRoot. Thus, /app/css/site.css under /srv/www/example becomes /srv/www/example/app/css/site.css. An Alias changes that calculation for its URL prefix: /app/css/site.css becomes /srv/apps/myapp/css/site.css in the external example.
The virtual-host decision happens before this mapping. A perfectly written Alias in the wrong virtual host has no effect, because another host may have answered the request first. Think of the process as a sequence: connection address and port, hostname match, URL mapping, filesystem authorization, then index or rewrite processing.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Pattern A: serve a directory below DocumentRoot
Use this pattern when the physical directory is part of the virtual host’s ordinary web tree.
<VirtualHost *:80>
ServerName example.com
DocumentRoot "/srv/www/example"
<Directory "/srv/www/example">
Require all granted
AllowOverride All
</Directory>
</VirtualHost>
With this layout:
/srv/www/example/
└── app/
└── index.html
http://example.com/app/ maps to /srv/www/example/app/, and http://example.com/app/index.html maps to the file shown in the tree. Unless an overriding directive changes the result, Apache appends the path from the request URL to the document root to build the local path.
This arrangement keeps deployment straightforward: copying the document tree to another server preserves the URL-to-path relationship. It also means that policies configured for the document-root directory can apply to the application, subject to any more-specific directory sections and per-directory files.
What happens when the request names a directory
When the URL resolves to a directory, Apache checks the configured DirectoryIndex sequence. If an index file such as index.html exists and is listed there, Apache serves it. If no index file is available, the result depends on directory-listing settings: a listing may be generated when indexing is enabled, or the request may be denied.
Test the directory URL and a concrete file URL separately. A successful /app/index.html request proves that the path and permissions work; a problem only with /app/ usually points to DirectoryIndex or directory-listing behavior rather than the basic mapping.
Decide whether .htaccess files are needed
AllowOverride All permits permitted directives in .htaccess files under the directory. If this site does not need per-directory overrides, use AllowOverride None instead and keep configuration in the main server files. The narrower setting reduces surprises from inherited or forgotten .htaccess rules; it does not by itself grant or deny filesystem access.
When diagnosing a request, remember that an .htaccess file can introduce rewrites or access rules after the request has reached the mapped directory. Establish that a static file is served correctly before attributing an error to application routing.
Pattern B: map a URL subdirectory with Alias
Use Alias when the public path should be independent of the directory’s physical location. Put the directive in the virtual host that should answer the request, then authorize the destination path in a matching <Directory> section.
Crashes, 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 minuteWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallRank #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
<VirtualHost *:80>
ServerName example.com
DocumentRoot "/srv/www/example"
Alias "/app/" "/srv/apps/myapp/"
<Directory "/srv/apps/myapp/">
Require all granted
AllowOverride None
Options FollowSymLinks
</Directory>
</VirtualHost>
A request for /app/index.html is translated to /srv/apps/myapp/index.html. The DocumentRoot still serves the rest of the site; only the URL prefix matched by the Alias is redirected to the external directory.
Apache’s mod_alias documentation describes the purpose directly: “The Alias directive allows documents to be stored in the local filesystem other than under the DocumentRoot.” This is a URL-to-filesystem mapping, not a file copy and not a second virtual host. The external directory remains where it is on disk.
Keep trailing slashes consistent
The example uses a slash at the end of both the URL path and the filesystem path. With a slash-terminated Alias, the requested URL must include the trailing slash for that Alias to match as documented. Test both /app and /app/; do not assume they are interchangeable. If you want the unslashed form to redirect to the canonical directory URL, configure that behavior explicitly rather than relying on an accidental match.
Use the same visual convention everywhere in the configuration so a future edit does not create a subtle mismatch. When checking a failure, request /app/index.html as well: a file request can reveal whether the problem is only the directory URL’s slash or index handling.
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 →Order overlapping aliases from specific to broad
Apache processes aliases in configuration order, and the first matching Alias takes precedence. If one rule maps /app/ and another maps a more specific path such as /app/admin/, place the more specific rule first when both could match. Otherwise the broader rule may capture the request before the intended destination is considered. Avoid overlapping prefixes unless their order is intentional and documented.
Authorize the real target, not just DocumentRoot
An Alias does not automatically make its destination readable. Apache evaluates access rules for the target filesystem path, so a directory outside the document root normally needs its own <Directory> block. In Apache 2.4, Require all granted allows access at that scope. Apply it only to the required directory and retain any authentication, IP restrictions, or other controls the application needs.
The operating-system account running Apache must also be able to traverse every parent directory and read the files it serves. A correct Apache authorization rule cannot overcome a filesystem permission that denies directory traversal or file reads. Check the complete path, not only the final directory: every parent must permit traversal, and the requested file must be readable by the service account.
The <Directory> path is a filesystem path, not the public URL. For Alias "/app/" "/srv/apps/myapp/", authorize /srv/apps/myapp/, not a block named /app/. Keeping those two paths visibly paired in the configuration makes reviews and later moves safer.
Recommended Free Tools
How Apache selects the VirtualHost
Before it evaluates the subdirectory mapping, Apache chooses a virtual host. For name-based hosts, it first considers the connection’s address and port, then compares the request hostname with ServerName and ServerAlias. If no hostname matches, the first virtual host for that address and port becomes the default.
Make the hostname explicit
Define a ServerName in every name-based virtual host and add only the aliases that should reach it.
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)
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot "/srv/www/example"
# Alias and Directory directives belong here when this host owns /app/
</VirtualHost>
Creating this block does not create DNS. The hostname must resolve to the server’s address before a browser can reach the intended host. If DNS points elsewhere, Apache never receives the request and no Alias change will fix it.
A common wrong-site symptom is seeing the first site’s homepage or a default page even though the Alias looks correct. Check the hostname sent by the client, the address and port in the <VirtualHost> declaration, and the parsed vhost order before editing path rules.
Step-by-step setup and verification
- Choose the physical layout. Put the directory below
DocumentRootfor the conventional tree pattern, or identify its absolute path when it is stored elsewhere. - Define the virtual host. Set an explicit
ServerName, the correct address and port, and the site-wideDocumentRoot. - Add the mapping. For an internal directory, create the directory under the document root. For an external directory, add an
Aliasand a matching<Directory>block inside the relevant<VirtualHost>. - Check slash spelling. Match the Alias URL and target conventions, especially when the URL path ends in
/. Test both the directory URL and a known file URL. - Set authorization deliberately. Use
Require all grantedonly at the narrow target scope when the content is intended to be public. SetAllowOverrideandOptionsaccording to the site’s actual needs. - Check the configuration syntax. Run
apachectl configtest. On installations that use thehttpdbinary directly, the equivalent ishttpd -t. Fix every reported error before reloading Apache. - Inspect parsed virtual hosts. Run
apachectl -Sto see how Apache parsed addresses, ports, hostnames, and vhost order. On Windows, usehttpd.exe -S. - Confirm DNS and the request host. Verify that the hostname resolves to this server and that the browser, curl request, or proxy sends the hostname named by
ServerNameorServerAlias. - Request both URL forms. Test
/app,/app/, and a known file such as/app/index.html. This distinguishes a slash mismatch from a missing file or directory authorization problem. - Read the logs. Inspect the virtual host’s access and error logs while making the request. Compare the requested URL, selected host, status code, and reported filesystem path.
- Reload only after validation. Apply the validated configuration using the service-management method for the operating system, then repeat the known-file request.
Run the syntax check before every reload, especially after moving an external application. A changed Alias target often requires changing the corresponding <Directory> path as well. The parsed-vhost output and logs provide an independent check that Apache loaded the file you edited and is using the host you expected.
DocumentRoot versus Alias: practical trade-offs
| Decision factor | DocumentRoot subdirectory | Alias to an external directory |
|---|---|---|
| Filesystem layout | The files live under the virtual host’s document tree. | The files can live anywhere Apache is permitted to read. |
| URL-to-path mapping | Mostly automatic: URL path is appended to the root. | Explicit: the Alias defines the URL prefix and destination. |
| Access-control scope | Often covered by the document-root <Directory> policy, subject to inherited rules. |
Needs a target-specific <Directory> policy, plus operating-system permissions. |
| Portability | Usually easier to copy as one self-contained site tree. | Requires the external path to exist and have equivalent permissions on each environment. |
| Troubleshooting | Fewer moving parts; check the root, URL path, and index settings. | Check Alias order, slash conventions, vhost selection, target authorization, and parent-directory traversal. |
| Best fit | A normal site or application directory that belongs inside the web root. | Shared assets, separately deployed applications, or a public URL that must not mirror the disk layout. |
DocumentRoot is generally the clearer choice when the public structure and disk structure should match. Alias adds a useful layer of indirection when deployments, shared storage, or an existing directory layout make moving files undesirable. That flexibility carries an operational cost: every environment must reproduce the external path, its permissions, and the target-specific Apache policy.
Diagnose common failures
404 Not Found
- Confirm that the requested URL and target filesystem path are spelled exactly as configured.
- Verify that the Alias is inside the virtual host that actually received the request.
- Check for an earlier Alias that matches the same prefix. Apache processes aliases in configuration order, so the first match takes precedence; put more specific aliases before broader ones.
- Confirm that the expected file exists at the effective path and that the request uses the required trailing slash for a slash-terminated Alias.
- Use
apachectl -Sand the logs to rule out a different virtual host before changing the mapping.
A 404 is usually a mapping or existence problem, not an authorization problem. First establish the exact path Apache calculated, then check whether that file exists there. Changing Require directives will not create a missing file or correct a typo in either side of an Alias.
403 Forbidden
- Check the target’s
<Directory>block for the requiredRequireauthorization. - Check read permission on the file and execute (traverse) permission on every parent directory for the Apache service account.
- Look for higher-level restrictions, authentication rules, or an inherited configuration that denies the request.
- For an external target, confirm that you authorized the real filesystem path, not only the document root or the URL path.
If an index file works directly but the directory URL returns 403, inspect DirectoryIndex and directory-listing settings. If every file returns 403, focus first on the target <Directory> policy and operating-system traversal permissions.
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Repair Windows errors before they cause bigger problems3Fix the driver behind crashes, sound loss and screen glitchesThe wrong site answers
- Verify DNS for the hostname and the address and port in
<VirtualHost>. - Check
ServerNameandServerAliasspelling, including the hostname sent by the client. - Inspect vhost order with
apachectl -S. When no hostname matches, Apache serves the first vhost for that address and port.
A directory listing appears instead of the application
- Check the
DirectoryIndexsetting for the virtual host and confirm that the named index file exists in the mapped directory. - Request the index file directly to distinguish an index-selection problem from a permission or mapping problem.
- Review directory-listing settings if a listing is not appropriate for public users.
Rewrite rules produce an unexpected result
First prove that the request reached the intended virtual host and mapped to the expected path. Then inspect rewrite directives in the vhost and any enabled .htaccess files. A rewrite can change the URL before or after you reason about the Alias, so troubleshooting it before confirming host selection and mapping often sends you in the wrong direction.
Configuration patterns that avoid avoidable problems
Keep paths unambiguous
Use absolute filesystem paths in DocumentRoot, Alias, and <Directory> directives. Keep the URL prefix and target path visually paired, and avoid overlapping aliases unless their order is intentional.
Grant the smallest useful scope
Do not place Require all granted on a broad parent directory merely to make one application work. Authorize the narrow directory that the Alias exposes, and add the site’s required authentication or network restrictions there. The same least-scope approach applies to AllowOverride and optional features such as symbolic-link handling.
Test a known file before testing application behavior
A static file such as index.html is a useful control. If that file cannot be fetched, application routing, framework rewrites, and runtime errors are not yet the relevant problem. Once the static mapping succeeds, test the application’s index and rewrite behavior separately.
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
Keep configuration and deployment paths synchronized
An external application often has a path that differs between development, staging, and production. Update the Alias and its matching <Directory> block together, then repeat configtest, -S, and a known-file request. A copied configuration that still points to an old absolute path will produce confusing 404 or 403 responses even when the URL is unchanged.
Complete examples
Internal application directory
<VirtualHost *:80>
ServerName example.com
DocumentRoot "/srv/www/example"
<Directory "/srv/www/example">
Require all granted
AllowOverride All
</Directory>
</VirtualHost>
Place the application at /srv/www/example/app/. The URL /app/ then uses the normal document-root mapping and the configured DirectoryIndex.
External application directory
<VirtualHost *:80>
ServerName example.com
DocumentRoot "/srv/www/example"
Alias "/app/" "/srv/apps/myapp/"
<Directory "/srv/apps/myapp/">
Require all granted
AllowOverride None
Options FollowSymLinks
</Directory>
</VirtualHost>
Here, /app/index.html is served from /srv/apps/myapp/index.html, while unrelated URLs continue to use /srv/www/example. If the external directory is moved, update both the Alias target and its matching <Directory> path, then run the syntax and vhost checks again.
Frequently asked questions
Should I change DocumentRoot to make /app work?
Only if the application directory should become the virtual host’s entire document tree. If the rest of the site must continue under /srv/www/example, leave DocumentRoot unchanged and use an Alias for an external application.
Why does an Alias return 403?
The external destination usually lacks a matching <Directory> authorization rule, or the Apache service account cannot traverse one of its parent directories. Check both Apache’s Require policy and operating-system permissions.
Why does /app/ work but /app fail?
A slash-terminated Alias is documented to match a URL with the trailing slash. Test both forms and configure an explicit redirect if the unslashed form should canonicalize to /app/.
Can I put the Alias outside the VirtualHost block?
For a host-specific mapping, place it in the relevant <VirtualHost>. Otherwise another host may receive the request, or the mapping may affect more sites than intended.
What if two Alias directives can match the same URL?
Apache uses the first matching Alias in configuration order. Put more specific URL prefixes before broader ones, or simplify the rules so their ownership is unambiguous.
Free tools Windows power users keep installed
One-click scans. No signup required.
Does defining ServerName create DNS?
No. DNS must point the hostname to the server separately. A VirtualHost declaration cannot make a browser reach a server whose address is not published for that name.
How do I confirm which virtual host Apache parsed?
Run apachectl -S, or httpd.exe -S on Windows. The output shows addresses, ports, hostnames, and ordering as Apache understands them.
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.
Why am I seeing a directory listing?
Check whether the mapped directory contains a file named in DirectoryIndex. If it does not, the result depends on directory-listing settings; request a known index file directly to isolate the issue.
A reliable mental model
For every request, answer these questions in order: Which address and port received it? Which ServerName or ServerAlias selected the virtual host? Does an Alias match the URL before the normal document-root rule? What exact filesystem path results? Is that path authorized by Apache and traversable by the operating-system account? Finally, is there an index file or rewrite that changes the outcome?
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Repair Windows errors before they cause bigger problems3Fix the driver behind crashes, sound loss and screen glitchesIf the directory is inside the site’s tree, let DocumentRoot provide the mapping. If it is outside, make the mapping explicit with Alias and authorize the destination explicitly. Keeping those two cases separate makes URL design, security review, deployment, and error diagnosis considerably more predictable.
Frequently Asked Questions
How do I serve a subdirectory from an Apache VirtualHost?
Use the normal DocumentRoot mapping when the directory is inside the document tree. For a directory elsewhere, add an Alias in the correct VirtualHost and authorize its filesystem target with a matching Directory block.
Why is my Alias returning 403 Forbidden?
Check Require authorization for the external target and verify read and traverse permissions for the Apache service account on the entire path.
Why does /app/ work while /app does not?
A slash-terminated Alias expects the trailing slash. Test both forms and configure an explicit redirect if /app should lead to /app/.
Recommended Free Tools
How can I tell whether the request reached the intended virtual host?
Run apachectl -S (httpd.exe -S on Windows), verify DNS, and check ServerName, ServerAlias, address, port, and vhost order.
What should I check when Apache returns 404?
Confirm the URL and target paths, Alias order, selected VirtualHost, trailing-slash requirements, and existence of the requested file.
The Bottom Line
Keep an in-tree application under DocumentRoot and let Apache append the URL path. For an application stored elsewhere, use an Alias inside the correct VirtualHost, authorize the real target with a narrow <Directory> block, verify filesystem traversal permissions, and validate with configtest, -S, known-file requests, and logs.
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.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →




