Served by Apache I'd like on one subdomain site of mine (say sub.mydomain.com
) that URLs without trailing slashes point directly (without external redirect) to the index file in the underlying folder. The subdomain requests are internally redirected to a sub-folder. All other URLS should work in the normal Apache way with external redirect to the slashed version.
All the directives have to go in my .htaccess file. For this to work I am planning to do the following:
- Switch off
DirectorySlash
for requests tosub.mydomain.com/...
- Rewrite the
sub.mydomain.com/…
requests to/sub/...
- Rewrite slashless directory URLs with
/sub/...
to fetch theindex.html
inside the underlying directory
I have a good idea how to do 2. and 3., but how can I issue DirectorySlash off
only for requests to sub.mydomain.com
, but not to www.mydomain.com
or other.mydomain.com
?
By the sounds of it, your
sub
subdomain maps to the same directory as the main domain and all other subdomains (www
andother
, etc.)However, if all requests to the
sub
subdomain are internally rewritten to the/sub
subdirectory then you can presumably just create another.htaccess
at/sub/.htaccess
in which you setDirectorySlash Off
- this then applies to all requests to thesub
subdomain. (Assuming you don't also access the same subdirectory via a different hostname. You can prevent this if you wish.)The
/sub/.htaccess
file is also where you would be implementing #3 in your requirements.The root
.htaccess
file simply rewrites all requests to thesub
subdomain to the/sub
subdirectory.Aside: Since you are asking this question on ServerFault it is generally assumed that you have full control of the server. In which case it would be preferable to configure this
sub
subdomain in its own vHost container that points directly to the/sub
subdirectory (or somewhere outside of the main domains directory tree ideally). In this case, you would not need to implement #2 of your requirements and you just setDirectorySlash Off
for the entire subdomain.