Score:1

On Apache how to switch off DirectorySlash only for requests to a specific subdomain?

cn flag

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:

  1. Switch off DirectorySlash for requests to sub.mydomain.com/...
  2. Rewrite the sub.mydomain.com/… requests to /sub/...
  3. Rewrite slashless directory URLs with /sub/... to fetch the index.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?

kz flag
Presumably the confusion is that the subdomain `sub` points to the same place as the main domain and all other subdomains?
cn flag
@MrWhite The requests to the sub are redirected into the folder /sub. So I only want to switch Directory slash off for everything in that folder. Does that make sense?
Score:1
kz flag

By the sounds of it, your sub subdomain maps to the same directory as the main domain and all other subdomains (www and other, 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 set DirectorySlash Off - this then applies to all requests to the sub 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 the sub 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 set DirectorySlash Off for the entire subdomain.

cn flag
It works! As you suggest, the trick is to have a secondary `.htaccess` in the `/sub`. Super cool!
mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.