Я пытаюсь создать RewriteRule, но это ненадежно, и я не могу понять, что происходит. Вот мое правило:
RewriteRule ^docs/(......)/$ index.php?docid=$1 [L]
проблема заключается в косых чертах, которые, как я слышал, очень неприятны. Происходит следующее:
если вы добавите косую черту в конце URL-адреса, все будет работать должным образом. однако, если вы не добавите косую черту в конце, URL-адрес превратится в следующий:
http://www.mywebsite.com/docs/abcdef/?docid=abcdef
Он включает данные GET после URL-адреса. Самое смешное, что сайт по-прежнему работает, как ожидалось. Как это вообще происходит? Согласно измененному мной правилу, URL-адрес должен выглядеть следующим образом:
http://www.mywebsite.com/index.php?docid=?docid=abcdef
но после дальнейшего тестирования кажется, что добавленные данные get полностью игнорируются. серьезно, я пробовал писать что-нибудь после вопросительного знака. На сайт ничего не влияет.
Я был бы признателен, если бы кто-нибудь мог объяснить мне, что происходит. Также, если бы кто-нибудь мог показать мне, как изменить rewriterule, чтобы перезапись работала.
Технические подробности:
Просто установите конечный /
по желанию с ?
:
RewriteRule ^docs/(......)/?$ index.php?docid=$1 [L]