A pretty URL for a specific PHP page?
Jore
community at thoughtmaybe.com
Sat Sep 11 11:51:01 UTC 2021
Hi Francis,
Thank you for that suggestion! The latter example has got me on track.
Cheers,
Jore
On 11/9/21 7:31 am, Francis Daly wrote:
> On Mon, Sep 06, 2021 at 02:58:37PM +1000, Jore wrote:
>
> Hi there,
>
>> Is it possible to make a pretty URL for a specific PHP page?
> Some php scripts make it straightforward, by handling that themselves. I
> guess that yours is not one of those?
>
>> I'd like https://domain.com/report/ to render
>> https://domain.com/index.php?r=app%2Fform&id=2lyEsw
> The simple thing -- that you possibly do not want to do here? -- would be
> to redirect to the desired url; in that case, the browser would make the
> "pretty" request, get the redirect response, make the "real" request,
> and get the full response. That would be something like
>
> location = /report/ { return 301 /index.php?r=app%2Fform&id=2lyEsw; }
>
>> So I tried this location block, but I get 403 forbidden:
>>
>> location /report {
>> index index.php?r=app%2Fform&id=2lyEsw;
>> alias /var/www/easyforms;
>> }
> "index" expects a filename argument; when that fails, it will probably
> try a directory index of /var/www/easyforms, which presumably leads to
> the 403 here.
>
> What you can try, is to call fastcgi_pass with appropriate parameters,
> directly.
>
> The exact parameters wanted by your fastcgi server and by your php script,
> depend on what they expect. And if you send the same parameter name more
> than once, whether the fastcgi server will provide the first, the last,
> or all amalgamated, to the php script, depends on the fastcgi server.
>
> But often "SCRIPT_FILENAME" and "QUERY_STRING" are enough to start with;
> if you need other things from your fastcgi.conf or fastcgi_params files,
> you can "include" those too, in a place where the manually-provided
> variables are not overridden.
>
> So the following might have a chance of working as you want; and if
> it does not, then the fastcgi error log or the nginx (debug) error log
> might help point at other changes that might be needed.
>
> location = /report/ {
> fastcgi_pass unix:/run/php/php-fpm.sock;
> fastcgi_param SCRIPT_FILENAME $document_root/index.php;
> fastcgi_param QUERY_STRING r=app%2Fform&id=2lyEsw;
> }
>
> One extra note: if the returned content includes relative links --
> something like "img src=new.png"-- then the browser will make a different
> follow-up request for it if the browser asked for "/report/", and if
> the browser asked for "/index.php?anything". If your output shows some
> broken-image links or the like, that might be a thing to check for. But
> that only matters after the rest of the config is working.
>
> Good luck with it!
>
> f
More information about the nginx
mailing list