Здравствуйте, как все знают чтобы убрать у названия файла его расширение надо в 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>
См. также
Виртуальный выделенный сервер (VDS) становится отличным выбором
здравствуйте, я установил на свой сервер OPcache (использую связку apache+nginx), после установки, добавил в конфиг пару строк (я взял их из рекомендаций...
Да, при работе с моделями можно использовать $this->setReadConnectionService('dbSlave') и $this->setWriteConnectionService('dbMaster'), но сложность возникает когда запросы идут...
Помогите, пожалуйста, сделать рандомное перемешивание блоков с данными из БД при каждом обновлении страницы