У меня есть небольшое сложное правило переписывания, и я не могу его освоить.
Я хочу использовать .htaccess, чтобы мой сайт увидел эту ссылку:
https://some-domain.com/human/jeff
Как эта ссылка (потому что система знает, как обрабатывать эту ссылку):
https://some-domain.com/?type=human&which=jeff
Примечания:
- Я хочу применить это правило, только если
type=human
.
which
param может содержать только буквенные символы.
- Если тип относится к человеку, больше не будет URL-параметров, кроме этих.
После долгих попыток это мой последний и провальный контент .htaccess:
RewriteEngine On
RewriteRule ^(https://[^/]+)/?\?type=(human)&which=([a-zA-z]+)$ $1/$2/$3 [NC, L]
Вот логика, стоящая за этим:
- Группа 1:
(https://[^/]+)
$ 1 будет содержать любую строку, соответствующую https://{any non empty string that does not containing "/"}
- https://some -domain.com
- Статический:
/?\?
соответствует "/?" или "?"
- Группа 2:
type=(human)
$ 2 будет содержать «человека»
- Группа 3:
which=([a-zA-z]+)
$ 3 будет содержать непустую строку с только буквенными символами (jeff).
Ожидаемый результат:
Это будет соответствовать регулярному выражению
https://{any non empty string that does not containing "/"}/human/{any non empty string}
И я в значительной степени застрял здесь
Спасибо!
EDIT:
Я должен также упомянуть, что перезапись должна быть только для запросов POST, и необходимы параметры post.