Починил это. Небольшое изменение в файле. Это видно ниже.
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]
Заранее спасибо.
Прежде всего, проверьте, включен ли модуль перезаписи в 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>
Я думаю, это поможет вам.
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
?