Как удалить индекс. php в URL - PullRequest
4 голосов
/ 22 января 2020

Я пытаюсь удалить страницу индекса в Codeigniter

первый шаг, который я делаю это // старый код

$config['index_page'] = "index.php”

// Новый обновленный код (Нужно только удалить индекс. php)

$config['index_page'] = ""

затем для второго шага я делаю этот созданный файл .htaccess в root codigniter, затем помещаю этот код источника

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

, но это то же самое проблема, и я не могу обновить sh веб-страницу

со страницей индекса, URL работает: http://localhost: 8089 / codeigniter3 / index.php / Hello / dispdata но без индексной страницы не работают http://localhost: 8089 / codeigniter3 / Hello / dispdata

Здравствуйте, контроллер, наконец, спасибо за помощь:)

Ответы [ 8 ]

4 голосов
/ 22 января 2020

Проблема в том, что вы установили его в /codeigniter3/

Это должно исправить это:

// remove index.php
$config['index_page'] = ""

// Allow installation in a subfolder of your webroot
$config['uri_protocol'] = "REQUEST_URI"

И сохраните настройки перезаписи, они в порядке.

1 голос
/ 25 января 2020
  1. Создайте новый файл в главной папке с именем (.htaccess) и вставьте этот код в файл .htaccess.

    <IfModule mod_rewrite.c>
     RewriteEngine On
     RewriteBase /Enter your folder name/
    
  2. Удаляет доступ к системная папка пользователями. Кроме того, это позволит вам создать контроллер System. php, ранее это было бы невозможно. Систему можно заменить, если вы переименовали системную папку.

    RewriteCond %{REQUEST_URI} ^system.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]
    

Когда папка приложения не находится в системной папке Этот фрагмент запрещает доступ пользователя к папке приложения

Переименуйте 'application' в имя папки вашего приложения.

 RewriteCond %{REQUEST_URI} ^application.*
 RewriteRule ^(.*)$ /index.php?/$1 [L]

Проверяет на

 Rewrite Cond %{ENV:REDIRECT_STATUS} ^$    
 Rewrite Cond %{REQUEST_FILENAME} !-f    
 Rewrite Cond %{REQUEST_FILENAME} !-d    
 RewriteRule ^(.*)$ index.php?/$1 [L]    
</IfModule>

ErrorDocument 404 /index.php

1 голос
/ 23 января 2020

Маршрутизация URL Codeigniter должна прийти вам на помощь. См .: https://codeigniter.com/user_guide/general/routing.html

0 голосов
/ 25 января 2020
RewriteRule ^(.*)$ index.php/$1 [L]

Поскольку вы передаете правильный URL-путь как дополнительная информация о пути (path_info) в вашей директиве .htaccess, попробуйте явно установить это в конфигурации:

$config['uri_protocol'] = 'path_info';

Если это не задано явно, он будет пытаться различными способами, которые могут быть неудачными, так как вы сейчас удалили index.php из URL.

0 голосов
/ 23 января 2020

Попробуйте выполнить этот шаг:

  1. удалить индекс. php из $config['index_page'] = "index.php"
  2. создать .htaccess в папке проекта root, как показано ниже code

    RewriteEngine on
    RewriteBase /codeigniter3/
    RewriteCond $1 !^(index\.php|css|fonts|images|js)
    RewriteRule ^(.*)$ index.php?/$1 [L]
    

    Тогда попробуйте http://localhost:8089/codeigniter3/Hello/dispdata

Надеюсь, это решит вашу проблему!

0 голосов
/ 23 января 2020

Пожалуйста, следуйте приведенному ниже процессу:

  1. Создание .htaccess файла в проекте root папка
  2. Проверьте, включен ли mod_rewrite на сервере?

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

Это решит вашу проблему. Дайте мне знать, если вы все еще сталкиваетесь с проблемой.

0 голосов
/ 23 января 2020

Можете ли вы попробовать приведенный ниже код в файле .htaccess в папке root

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
0 голосов
/ 22 января 2020

попробуйте это

RewriteRule ^(.*)$ index.php?/$1 [L,QSA] 

QSA означает, что если строка запроса передана с исходным URL, она будет добавлена ​​к перезаписи

И затем выполните это

//remove index.php
$config['index_page'] = '';

$config['uri_protocol'] = 'REQUEST_URI';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...