Understanding alias (used as rewrite)
E.B.
emailbuilder88 at yahoo.com
Mon Jun 22 10:05:05 UTC 2015
Hi, I'm confused about the details of "alias" used as
a kind of rewrite (which should be more efficient as
I understand it, as long as its appropriately used).
I found I can do this:
location = /path/number/one.html {
alias /some/other/path/script.php;
include fastcgi.conf;
}
So I was confucsed why this not working:
location ^~ /my-long-prefix-goes-here {
alias /another/different/path/anotherscript.php;
include fastcgi.conf;
}
In other words, alias of exact location match does
a cheap "rewrite" perfectly. But now I want to match
addresses like:
/my-long-prefix-goes-here
/my-long-prefix-goes-herexxx
/my-long-prefix-goes-here/
/my-long-prefix-goes-here/filename
Only the first one works, the others are 404. Is
Nginx adding the tail end of the matched prefix
to the aliased location? I tried to make my alias:
alias /another/different/path/anotehrscript.php?;
so the stuff on the end turns into a query arg which
php can ignore. But that didn't work.
I also tried to use regex to match the location:
location ~ ^/my-long-prefix-goes-here {
But now NONE of the addresses work - even the
exact match is 404. Why??
I found this was the only way to make it work:
root /another/different/path;
rewrite ^(.*)$ /anotehrscript.php break;
In this situation is rewrite the only solution?
More information about the nginx
mailing list