Здравствуйте, как все знают чтобы убрать у названия файла его расширение надо в htaccess ввести следующее
# Запускаем движок замены
RewriteEngine on
# Если запрашиваемый объект не папка
RewriteCond %{REQUEST_FILENAME} !-d
# если запрашиваемый объект с дописанным расширением php - файл
RewriteCond %{REQUEST_FILENAME}\.php -f
# делаем замену с дописыванием .php
RewriteRule ^(.*)$ $1.php
Я столкнулся со следующей проблемой, все работает отлично если не одно но, если у вас на одном уровне имеется файл например ru.php и папка ru то при обращении например к файлу site.com/ru меня переводит не на ru.php а на автомате перекидывает в папку site.com/ru/
Кто знает как решить этот вопрос?
По скрипту: (переименовать папку или файл это не решение вопроса, а уход от проблемы которую хотелось бы решить).
Проверил информацию, полученную от @Visman. Действительно Apache дописывает слеш если есть директория, но тут дело в модуле mod_dir и директиве DirectorySlash. По-умолчанию значение директивы on и Apache возвращает ответ 301 с URL который оканчивается на слеш.
Решение вашей проблемы такое:
# запускаем движок замены
RewriteEngine on
# если запрашиваемый объект с дописанным расширением php - файл
RewriteCond %{REQUEST_FILENAME}\.php -f
# делаем замену с дописыванием .php
RewriteRule ^(.*)$ $1.php
# отключаем редирект для директорий без слеша
<IfModule mod_dir.c>
DirectorySlash off
</IfModule>
См. также
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости