Вам просто нужно это:
RewriteRule ^index\.php$ ^$ [R=301,QSA,L]
Примечание: это для этого случая: пользователь в браузере набирает mydomain.com/index.php
и прозрачно перенаправляется на mydomain.com/
(и это видно в браузере).
Если вы хотели обратного, это должно сработать:
RewriteRule ^$ /index\.php [R=301,QSA,L]
Это также сделает перенаправление (и в браузере URL изменится с mydomain.com/index.php
на mydomain.com/
.
Пожалуйста, скажите мне, если это работает.
[обновление]
Если вам не нужны URL-адреса, такие как /index.php?
, и URL-адреса, содержащие строку запроса, вам просто нужно:
# if QUERY_STRING is empty...
RewriteCond %{QUERY_STRING} ^$
# ... then try to apply the rule
RewriteRule ^index\.php$ ^$ [R=301,QSA,L]