A couple of wees ago in “Updating some old ‘if’ statements”
(Updating some old "if" statements) it was
suggested I use try files instead of the ‘if’ I had.
The old location did two things: It ran an extensionless file as a php
file and also checked for the existence of a statically cached file.
Though the rewrite is successfully serving the static file and handling
the extensionless php fine, I didn’t initially notice that other GET
variables like ?page are getting ignored.
Here’s the old ‘if’ location that passed on all variables just fine:
Those familiar with my posts know I suck at regex, but I’m assuming the
rewrite in the old location successfully took URLS like:
/galleries/129/1/3?page=2 and passed them to php as:
/galleries.php?mypath=/129/1/3&page=2 while something in the new
location
is dropping any additional get variables?
The old location has been working successfully in production for several
years but I thought I should get rid of the evil if.
The try_files version, as I said, works except for the dropping of
additional get variables in the URL.
/galleries/129/1/3?page=2 and passed them to php as:
/galleries.php?mypath=/129/1/3&page=2 while something in the new location
is dropping any additional get variables?
The old location has been working successfully in production for several
years but I thought I should get rid of the evil if.
The try_files version, as I said, works except for the dropping of
additional get variables in the URL.
I thought adding $args to the end of the try_files line would work but
that appeared to mess it up more. Is there any way to get the try_files
version to work like the old version?
Been staring at this but I don’t see how
rewrite ^/galleries(/.*$|$) /galleries.php?mypath=$1 last; passes the
path and additional GET variables, but the try_files version doesn’t
pass on the additional variables.
I thought adding $args to the end of the try_files line would work but that
appeared to mess it up more. Is there any way to get the try_files version
to work like the old version?
Been staring at this but I don’t see how
rewrite ^/galleries(/.*$|$) /galleries.php?mypath=$1 last; passes the path
and additional GET variables, but the try_files version doesn’t pass on the
additional variables.
“If a replacement string includes the new request arguments, the
previous request arguments are appended after them. If this is
undesired, putting a question mark at the end of a replacement string
avoids having them appended, for example:”
“If a replacement string includes the new request arguments, the
previous request arguments are appended after them. If this is
undesired, putting a question mark at the end of a replacement string
avoids having them appended, for example:”
Additionally, I do indeed add $args for my try_files for wordpress: