5

I have a site, which successfully passes the content after the first slash to a specified .php file. (elegantly: remove ".php")

site.com/azamat to site.com/azamat.php

RewriteCond %{REQUEST_FILENAME} !-d    
RewriteCond %{REQUEST_FILENAME}\.php -f   
RewriteRule ^(.*)$ $1.php [NC]

How can I add additional parameters to these rules, so I can pass "page" parameters, like:

site.com/azamat/bagatov to site.com/azamat.php?page=bagatov

or

site.com/thisisthefile/andparams to site.com/thisisthefile.php?page=andparams

1 Answer 1

2

Try adding these rules (keep the ones you already have):

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^/([^/]+)/.+$
RewriteCond %{DOCUMENT_ROOT}/%1.php -f
RewriteRule ^([^/]+)/(.+)$ /$1.php?page=$2 [L]

This is more or less like what you've got with the exception of using a %1 backreference to check if the first part of the URI exists as a php file. This is the match for the first part:

RewriteCond %{REQUEST_URI} ^/([^/]+)/.+$

And this is the fheck to see if the ([^/]+) grouping exists as a php file:

RewriteCond %{DOCUMENT_ROOT}/%1.php -f

Everything else is to match what's after the first / and make that the page query string param.

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.