htaccess codeigniter удалить index.php - PullRequest
0 голосов
/ 01 ноября 2018

Я разместил приложение codeigniter в apache2.4 в среде докера php7.2. Не удалось правильно разрешить маршруты.

PATH

/ вар / WWW / HTML / приложения / sample1

Браузер PATH

http://localhost:8080/apps/sample1/

работает нормально, но контроллер маршрутов и действия не решаются, пока я не использую index.php

http://localhost:8080/apps/sample1/index.php/admin/logn

Правильное ожидание

http://localhost:8080/apps/sample1/admin/logn

.htaccess текущая конфигурация, Apache mod_rewrite уже включен

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

<IfModule !mod_rewrite.c>
    # If we don't have mod_rewrite installed, all 404's
    # can be sent to index.php, and everything works as normal.
    # Submitted by: ElliotHaughin

    ErrorDocument 404 /index.php
</IfModule>  
<IfModule mod_php5.c>
  php_value short_open_tag 1
  php_value upload_max_filesize 20M
  php_value post_max_size 20M
  php_value max_execution_time 200
  php_value max_input_time 200
</IfModule>

Пожалуйста, направьте меня, как я могу это исправить.

Ответы [ 4 ]

0 голосов
/ 05 ноября 2018

Установить в config.php

$config['index_page'] = '';

в .hta

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /apps/sample1/index.php/$1 [L]
</IfModule>

Вам также нужно указать каталог, поскольку ваш путь / var / www / html / apps / sample1 not / вар / WWW / HTML /

0 голосов
/ 02 ноября 2018

1) создать htaccess, как

RewriteEngine on
RewriteCond $1 !^(index\.php|asset)
RewriteRule ^(.*)$ index.php?/$1 [L]
Options -Indexes

2) в файле application / config / config.php

$config['index_page'] = '';
0 голосов
/ 02 ноября 2018

Установить в config.php

$config['index_page'] = '';

Тогда ваш .htaccess You RewriteBase может выглядеть как показано ниже в зависимости от вашей корневой папки или просто /, если приложение работает в корневой папке

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /folder_name/

    RewriteCond $1 !^(index\.php|images|robots\.txt)

    #Removes access to the system folder by users.  
    RewriteCond %{REQUEST_URI} ^system.*
    RewriteRule ^(.*)$ /index.php/$1 [L]

    #This snippet prevents user access to the application folder
    RewriteCond %{REQUEST_URI} ^application.*
    RewriteRule ^(.*)$ /index.php/$1 [L]

    #Checks to see if the user is attempting to access a valid file,
    #such as an image or css document, if this isn't true it sends the
    #request to index.php
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
    ErrorDocument 404 /index.php
</IfModule>
0 голосов
/ 02 ноября 2018

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

1) Редактировать config.php

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

до

$config['index_page'] = '';

2) Создание / редактирование файла .htaccess

 <IfModule mod_rewrite.c>
  RewriteEngine On
  # !IMPORTANT! Set your RewriteBase here and don't forget trailing and leading
  #  slashes.
  # If your page resides at
  #  http://www.example.com/mypage/test1
  # then use
  # RewriteBase /mypage/test1/
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
  # If we don't have mod_rewrite installed, all 404's
  # can be sent to index.php, and everything works as normal.
  # Submitted by: ElliotHaughin
    ErrorDocument 404 /index.php
</IfModule>

<IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin: "*"
</IfModule>
...