Hello,
I’m setting up a new site with nginx and stumbled upon a problem with the url on the frontpage. When I go into my site (for example) http://domain.com then it opens http://domain.com/index.
I would like to remove index and only have it at http://domain.com.
I have successfully removed .html extension on pages (domain.com/aboutus.html -> domain.com/aboutus) but can’t figure out how I can go from (domain.com/index -> domain.com)
This is how my server is configured:
server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; root /usr/share/nginx/html;
# Make site accessible from http://localhost/
server_name domain.com;
rewrite ^(/.+)\.html$ $scheme://$host$1 permanent;
location / {
index index.html;
try_files $uri.html $uri $uri/ @handler;
autoindex on;
}
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!
Any solution to this? Seems like a very common issue that Google cannot solve. My God! There are dozens of instructions out there online, all are wrong. WtF?
Please DO, remove index.html and index.php from all URLs, redirect to the non-index.html and non-index.php pages. And without using an if statement.
This comment has been deleted
The autoindex on; definition is more so meant to allow for directory listings in the event an index file is not found. This means that in the event index.html is not found, the entire directory contents will be exposed to the visitor. In most cases, this is viewed as a security risk and should only be on when other directories are locked down to prevent traversing, except to those you specifically allow.
The index definition should ideally be moved to nginx.conf under http { }.
As an example, here’s a quick reference for http { } and a server { } block:
http
{
index index.php index.html;
#+ Additional Configuration ....
#+ ....
#+ ....
#+ .... etc
}
server
{
listen [port];
server_name [domain.ext] [www.domain.ext];
root [/path/to/content/dir];
error_log [/path/to/error.log];
access_log [/path/to/access.log];
location / {
try_files $uri $uri/ index.php;
#+ or, for HTML instead of PHP
#+ try_files $uri $uri/ index.html;
}
}
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.