Я уже день пытаюсь удалить index.php из своего приложения. Я все перепробовал, но не могу удалить. Проблема в том, что мне нельзя иметь .htaccess
файл в каталоге проекта, а конфигурация в файле .htaccess, который работает на моем локальном компьютере разработчика, там не работает.
Конфигурация на моем локальном компьютере:
<IfModule mod_rewrite.c>
# Rules to serve URLs which point to files directly
# ----------
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
Мне известно, что я не могу использовать директиву RewriteBase внутри файла конфигурации хоста (/etc/apache2/sites-available/000-default.conf/000-default.conf). Однако отключение этого тоже не работает.
Почему эта проблема такая сложная? Есть гораздо более сложные перенаправления, которые отлично работают, но, похоже, нет определенного решения для удаления index.php из URL!
РЕДАКТИРОВАТЬ: он установлен на машине Ubuntu 14.04.
Если вам необходимо избегать использования .htaccess, другой директивой, которую вы можете попробовать, если у вас возникли проблемы с mod_rewrite, является использование директивы ErrorDocument, например следующей:
ErrorDocument 404 /index.php
Если вы пойдете по этому пути, вам может потребоваться немного подправить код приложения - например, в верхней части файла index.php, вам может потребоваться установить $ _SERVER ['PATH_INFO'] на $ _SERVER ['REQUEST_URI']. Сравните содержимое $ _SERVER между разработчиками и производителями, чтобы лучше понять, не помогает ли это.
Если вы можете отредактировать файл conf, как вы отметили, и если использование .htaccess не является проблемой политики / безопасности, вы всегда можете включить .htaccess для сайта, используя директиву AllowOverride в файле conf.