1

Both landing.php and all the other pages of my site are in the same directory. I want to be able to access both, however if I have a try_files statement as well as an index statement, I get a 404 error when accessing the index page.

Is there a way to achieve this without conflicting either?

Here's my configuration file:

server { listen 80; access_log /var/www/mysite.com/logs/access.log; error_log /var/www/mysite.com/logs/error.log; root /var/www/mysite.com/public_html/mysite/public/_main; server_name www.mysite.com mysite.com; location / { index landing.php; try_files $uri $uri.php?$query_string; } location ~ \.php$ { try_files $uri =404; include /etc/nginx/fastcgi_params; fastcgi_pass unix:/var/run/php-fastcgi/php-fastcgi.socket; fastcgi_index landing.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } } 

2 Answers 2

2

I finally worked out how to do this. What you need is two location blocks, like this:

location = / { index landing.php; } location / { try_files $uri $uri.php?$query_string; } 

What this does is use try_files for any other page such as www.site.com/somepage; however if the URL is www.site.com, it will fetch the index page.

Sign up to request clarification or add additional context in comments.

Comments

0

Try the following config it worked for me:

server { root /path/to/root; index index.html index.htm; server_name subdomain.domain.com; location / { try_files $uri $uri/ /index.html; auth_basic "Restricted"; auth_basic_user_file /etc/nginx/.htpasswd; } location /doc/ { alias /usr/share/doc/; autoindex on; } } 

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.