Hey,
I’ve been trying lately to do two things on my server:
The server is running on nginx.
My domain (sub.domain.com) is set to get html files at the following root: /usr/share/nginx/html.
The redirect works fine with this added to the /etc/nginx/nginx.conf file:
server {
...
location = / {
return 301 /folderone/foldertwo/;
}
...
}
My problem comes when this happens. It logically redirects the user via a url redirect. So the browser is no longer showing sub.domain.com but sub.domain.com/folderone/foldertwo/, which makes perfect sense. Now what i’m trying to do is rewrite this url and remove those two folders from it to be back at sub.domain.com from a visual point of view.
I’ve tried several things, among:
location = /folderone/foldertwo/ { rewrite... }
location / {
if ($http_host ~ "^sub.domain.com"){
rewrite ^(.*)$ http://sub.domain.com/folderone/foldertwo/$1 redirect;
}
}
location /issue {
rewrite ^/issue(.*) http://$server_name/shop/issues/custom_issue_name$1 permanent;
}
I’m wondering if this can be achieved since i’m trying to redirect to a specific folder and then almost “redirect” to the root.
If possible, should the rules be in the same server directive? Same location block? Is an alias the solution?
Thanks.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Hi!
In this case, a simple rewrite rule will do.
server {
...
rewrite ^/$ /folderone/foldertwo;
...
}
By default, rewrite performs the redirection internally without informing the user about it. As a result of that, the URL will stay as http://yourdomain.com/ while actually serving http://yourdomain.com/folderone/foldertwo. Keep in mind that any relative URLs will be relative to /, not /folderone/foldertwo.
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.
Full documentation for every DigitalOcean product.
The Wave has everything you need to know about building a business, from raising funding to marketing your product.
Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.
New accounts only. By submitting your email you agree to our Privacy Policy
Scale up as you grow — whether you're running one virtual machine or ten thousand.
Sign up and get $200 in credit for your first 60 days with DigitalOcean.*
*This promotional offer applies to new accounts only.