Перенаправить .php на .php

У меня это в файле htaccess

RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.php -f RewriteRule ^(.*)$ $1.php 

Это позволит людям получить доступ к server/login.php как к server/login но как я могу это сделать, чтобы, если server/login.php введен в адресную строку, он перенаправляется на server/login .

Из-за этого мой сайт получает разные образы, а не только за один URL-адрес, благодаря вашим усилиям и времени.

Вы можете сделать это с помощью внешнего перенаправления:

 RewriteRule ^(.*)\.php$ $1 [R,L] 

R-флаг является временным перенаправлением. Если все работает так, как вы ожидаете, что они будут работать, вы можете использовать R = 301, чтобы сделать его постоянной переадресацией. Дополнительную информацию см. В документации .

Изменить: с помощью текущего правила это создаст бесконечный цикл. Если вы используете Apache 2.3.9 или новее, используйте флаг END в своем внутреннем правиле перезаписи. Если вы не хотите или не можете использовать такую ​​версию Apache, вы можете использовать трюк «THE_REQUEST», чтобы остановить бесконечный цикл, поскольку это будет соответствовать только если запрос поступает извне:

 RewriteCond %{THE_REQUEST} ^[AZ]{3,}\s(.*)\.php[\s\?] [NC] RewriteRule ^ %1 [R,QSA,L] 

Измените базовый путь RewriteBase /path/

 RewriteEngine on RewriteBase /path/ RewriteCond %{THE_REQUEST} \.php RewriteRule ^(.*)\.php$ $1 [R=301,L] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.php -f RewriteRule ^(.*)$ $1.php