HAPROXY, general rule for redirecting a subdomain to a directory - haproxy

I'm new to HAPROXY's advanced ACLs and I need your help.
I would like to create a redirect based on the subdomain used.
Example :
I have one directory per site on my host.
If someone enters the URL https://test1.test.com, I would like them to be redirected to the test1 directory on the host.
The directory on my host will always be identical to the subdomain.
Example :
https://test2.test.com --> folder /test2
https://test3.test.com --> folder /test3
I would like to create a general rule that redirects to the right folder depending on the subdomain.
I don't know if I was clear enough?
Thank you in advance for your help.

Related

Will a CNAME redirect subfolders too?

Say I have a webserver data.mydomain.org.
Right now the webserver has an index.html with a redirect to info.anotherdomain.com.
In addition to providing a redirect, the server has other content like an images folder and a documents folder. These have to remain operational.
My DNS is GoDaddy. If I get on GoDaddy and add a CNAME of info.anotherdomain.com to data.mydomain.org , what happens to the subfolder paths? Will the CNAME make the subfolder paths resolve from lets say data.mydomain.org/images/image1.jpg to info.anotherdomain.com/images/image1.jpg? Or would subfolders be unaffected?
My goal is to get rid of the current index.html redirect and also have the page at info.anotherdomain.com come up in the address bar as data.mydomain.org
First of all DNS doesn't redirects it just route. So you will need the CNAME record to could even reach that subdomain.domain.tld.
But the redir, handling of folders and anything else must be performed from the HTTP server side.

ISPConfig change "Document Root" for specific domain

How to change the Document Root for a specific domain/subdomain inside ISPConfig 3.
I need to point my subdomain to a different directory than the standard client3 web6 roots.
And in "ISPConfig 3" this field isn't editable, neither during creation nor afterwards.
The solution was pretty simple, All I had to do is, once the domain was created, I had to navigate as below..
Select that domain > Options > Apache Directives
And paste the following line where the root of the domain/subdomain would be adjusted accordingly. I wanted to point the domain to rainloop installation which was outside the Default Web Root directory /var/www/html.
DocumentRoot "/var/www/rainloop/"
Have written this Q/A as a documentation as in-spite of it being so simple, this solution isn't documented anywhere.
Hey yeah you can put this as directive snippsel:
DocumentRoot {DOCROOT_CLIENT}/YOURNEWFOLDER
in complete that shows something like this in your /etc/apache2/sites-available/ in the lower, isp config put this in:
DocumentRoot /var/www/clients/client10/web72/web/YOURNEWFOLDER

NGINX: subfolder to subdomain redirection doesn't work

yesterday i switched my sites to a new server. now i have a problem, because one domain i now run as a subdomain, was previously accessed as a subfolder and a few sites, which I have no access to, are still using that domain.com/subfolder/?some=parameters
so, long story short:
i need to update my nginx config file, to redirect my users from domain.com/subfolder/?some=parameters to subfolder.domain.com/?some=parameters
i searched for a solution for that problem yesterday, but couldn't fix the problem.
currently i have this in my conf file:
location /subfolder/ {
rewrite ^/subfolder(/.*)$ http://subfolder.domain.com$1 permanent;
}
which obviously redirects all requests from domain.com/subfolder/?some=parameters to subfolder.domain.com/?some=parameters, but requests to domain.com/subfolder/styles.css aren't redirected.
I think this is due to a conflicting location directive for specific static file extensions in your nginx config. I was able to get your rule to work by making it use a regular expression which influences the priority.
location ~ /subfolder/.* {
rewrite ^/subfolder(/.*)$ http://subfolder.domain.com$1 permanent;
}
See the details about the location directive, especially the rules and examples there about precedence.

base url redirecting for absolute urls

I'm dealing with an annoying problem. I have to make some changes to a large website, which source code is not under my control (sub-contracting). As usually I try to rebuild a local copy of the site to test my changes. The problem is now that almost all paths used in URLs for images, css, links etc. are relative paths pointing to the root directory, like
href="/style/main.css"
This is a problem because I develop on an intranet server and I put this project into a nested directory, so the URL to the project files is sth. like
http://myIntranet.com/checkout/project
What happens is that the paths from the first example don't resolve correctly. So I tried using the base tag to set the directory from which links should be resolved as
That works fine when the path is
href="style/main.css"
without the slash at the start, but fails when the slash exists, because (I think) the link is resolved from the server host, not from the URI in the tag.
So... is there any possibility to make the "/dir/file.html" links resolve from a root othe than the server root? Or do I have to manually remove all prepending slashes from the paths (urgh)?
Thanks in advance. :)
If you're doing local development on a web site you can do either of the below. Both involve moving your project in a base folder instead of working with sub folders inside your document root.
Virtual host on different port
In your web server, create another listening port and virtual host.
After restart, you can access your web server as http://localhost:81 or whatever port number you choose.
Virtual host on same port
Only create another virtual host (like above), but make sure to use named virtual hosting.
After restart, you have to add another entry in your hosts file (c:\windows\system32\drivers\etc\hosts or /etc/hosts) using a simple text editor:
127.0.0.1 localhost myproject1.self.com
The above line should already exist, so you can keep adding more names to it:
127.0.0.1 localhost myproject1.self.com myproject2.self.com
Personal preference
I like the second option, because I don't have to mess with ports and stuff like Facebook API keeps working as you expect.
I hope this all makes sense, let me know otherwise.

"URL not found" error at my localhost setup of TYPO3 website.

I have setup TYPO3 successfully on my local server. But I am having problem when clicking on any menu item: It's showing "url not found on server".
When I type in the URL manually into the browser it shows the page. It's only having problems when redirecting after clicking on a page item at any frontend website page.
That might be related to the domain config or RealURL... or both ;)
Do you use RealURL? Or do you use the standard url config?
If links to sub pages look like index.php?id=12345 you are using the standard config.
My guess is that the local DNS ("hosts file") is not configured correctly.
With the hosts file you can simulate how the web site will appear when it's online, hooked up to a "real/global" DNS. (Not quite, but in a nutshell)
So if you set up Typo3 to be reached under http://www.example.com/ you need to tell your local DNS ("hosts file") to route a request to http://www.example.com/ to your local host e.g. http://127.0.0.1/ . In that case your host file needs an entry like so:
127.0.0.1 http://www.example.com/
What Domain do you enter to reach your web site? Where do the links from the menu link to?
If you wanna know mor about the "hosts file" look here:
http://accs-net.com/hosts/how_to_use_hosts.html
If you can log in into the TYPO3 backend (/typo3/) and can access the frondend through /index.php, but not through the generated menu links, then RewriteRules for mod_rewrite don't apply.
Usually TYPO3's installer should detect this configuration and disable RealURL, which is responsible for generating such nice looking URLs (instead of index.php?id=123). It seems like this failed (or you copied everything afterwards without the .htaccess file?).
Make sure that you have TYPO3's .htaccess file in place in the root directory of your installation. If this is the case, make sure that mod_rewrite is enabled in your Apache config.