Использование RewriteRule .* %{REQUEST_URI}.php [L]
Трудно сказать, почему ваше правило не сработало для вас, имея так мало информации о вашей настройке Apache и любых других правилах перезаписи, которые у вас могут быть.
Вполне возможно, что флаг [L]
сработал для вас - у вас могут быть другие правила переписывания, которые переписывают этот URL дальше, что в итоге приводит к неверному результату.Я не думаю, что %{REQUEST_URI}
проделал такую большую работу сам по себе, если только у вас нет символических ссылок / псевдонимов или даже прозрачного прокси, которые могут иметь значение.
Имейте в виду, чтоправила, которые вы указали в своем вопросе, не могут генерировать такого рода URL, которые будут видны в адресной строке браузера (example.com//service.php/
) - это должен быть задействованный редирект (код 3xx) ... который предполагает, что у вас где-то есть другие правила.
Скорее всего, это комбинация ваших специфических настроек Apache и логики комбинированных правил перезаписи (где флаг L
может иметь большое значение в зависимости от этих других правил).
Единственный способчтобы дать более точный ответ, включите отладку перезаписи и проанализируйте, как была выполнена перезапись и что в ней было задействовано.