I want any requests like http://example.com/whatever/index.php
, to do a 301 redirect to http://example.com/whatever/
.
I tried adding:
rewrite ^(.*/)index.php$ $1 permanent;
location / {
index index.php;
}
The problem here, this rewrite gets run on the root url, which causes a infinite redirect loop.
Edit:
I need a general solution
http://example.com/
should serve the file webroot/index.php
http://example.com/index.php
, should 301 redirect to http://example.com/
http://example.com/a/index.php
should 301 redirect to http://example.com/a/
http://example.com/a/
should serve the index.php script at webroot/a/index.php
Basically, I never want to show "index.php" in the address bar. I have old backlinks that I need to redirect to the canonical url.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…