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
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.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.