Файл .htaccess не работает должным образом с path_info и / или методом get

0

Починил это. Небольшое изменение в файле. Это видно ниже.

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule (.*) index.php?$1 [NC,QSA,L]

Я пытался целый день исправить проблему, которая у меня есть. У меня есть этот файл.htaccess, который просто перезаписывает URL-адреса так же, как

http://example.com/about/?req=true
http://example.com/index.php/about/?req=true

Он работает на моем localhost без проблем, но когда я загружаю его на сервер, я получаю ошибку "без входного файла". Вы можете увидеть содержимое файла.htaccess ниже.

RewriteEngine on

RewriteCond %{REQUEST_FILENAME}       !-f
RewriteRule ^(.*) index.php/$1 [L]

Я пробовал разные вещи, которые я нашел в Интернете, включая добавление файла php.ini, который устанавливает cgi.fix_pathinfo в 1, но никто из них не работал, кроме одного, и тот, который не читает строку запроса. Вы можете видеть это ниже.

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*?)/?$ /index.php?x=$1 [L]

Заранее спасибо.

  • 0
    Вы хотите переписать http://example.com/about/?req=true на http://example.com/index.php/about/?req=true ? как может работать каталог под файлом (даже на локальном компьютере)? Разве это не должно быть что-то вроде этого? http://example.com/about/index.php?req=true или как это http://example.com/index.php?req=true&page=about ?
  • 0
    @serjoscha я думаю, ты ошибся. то, что я пытаюсь сделать здесь, это использовать $ _SERVER ['path_info'] для лучшей обработки удобных для пользователя URL.
Теги:
.htaccess
mod-rewrite

1 ответ

-1

Прежде всего, проверьте, включен ли модуль перезаписи в apache или нет, если включить, тогда вы можете использовать этот код hide index.php с URL-адресом

<IfModule mod_rewrite.c>
   RewriteEngine On
   RewriteBase /base_directory_name/
   RewriteRule ^index\.php$ - [L]
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteRule . /base_directory_name/index.php [L]
</IfModule>

Я думаю, это поможет вам.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню