Ссылка http://localhost/myproject/payment/confirm/1
была перенаправлена на http://localhost/myproject/payment/confirm.php?id=1
по этому правилу:
# myproject : root folder
# payment : folder myproject/payment
# confirm.php : file in myproject/payment/confirm.php
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} confirm/(.*)$
RewriteRule (.*)/(.*)$ $1\.php?id=$2 [L]
Файл PHP может находиться в другом пути к папке или глубине. Например, ссылка http://localhost/myproject/client/payment/confirm/1
также работает с приведенным выше правилом для перезаписи на http://localhost/myproject/client/payment/confirm.php?id=1
.
Я пытаюсь сделать confirm
динамическим c для других страниц, например invoice/2
для invoice.php?id=2
.
Я пытался включить %{REQUEST_FILENAME}
во второй RewriteCond, но безуспешно.
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} %{REQUEST_FILENAME}/(.*)$
RewriteRule (.*)/(.*)$ $1\.php?id=$2 [L]
Как этого добиться, чтобы мы не определяли длинные возможные страницы с идентификатор на это? Пожалуйста, совет.