Codeigniter - XAMP - проблема htaccess - PullRequest
1 голос
/ 06 марта 2020

Я просмотрел множество предоставленных решений на этом и других сайтах, но, похоже, не могу найти то, что работает.

Я только что скачал Codeigniter и поместил его в папку htdocs из Xamp. Изменил название на «нотас». Изменены notas/config/config.php свойства, подобные этому

$config['base_url'] = 'http://localhost/notas/';
$config['index_page'] = '';

Создан файл .htaccess в 'notas' со многими подходами. В настоящее время у меня есть это как

RewriteEngine On

RewriteBase /notas/
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ $1.php [NC,L]

, и URL http://localhost/notas/welcome возвращает Object not found - 404, где приветствуется тот контроллер по умолчанию в папке

Если я поставлю это так, я получите ошибку 500

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

Если есть какие-либо другие данные, которые я мог бы предоставить, чтобы помочь решить их, пожалуйста, попросите их

Спасибо

РЕДАКТИРОВАТЬ

Если я добавлю файл .htaccess, например

Satisfy all

или

Satisfy any

Все еще получу 404. Я уже перепроверил, что внутри папки контроллера существует Приветствие. php файл

Ответы [ 3 ]

1 голос
/ 06 марта 2020

Конечно, я был первым, кто сломал его. Я изменил имя файла /notas/index.php, думая, что это похоже на пример, и хотел увидеть что-то другое. После правильного переименования и установки следующего htaccess сработало

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

Спасибо за помощь. Специально спасибо Амит Шарма, который заставил меня понять это

0 голосов
/ 07 марта 2020

Вы можете использовать Dynami c baseurl следующим образом:

$config['base_url'] = "http://".$_SERVER['HTTP_HOST'];
$config['base_url'] .= preg_replace('@/+$@','', dirname($_SERVER['SCRIPT_NAME'])).'/';

А в htaccess:

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

И не забудьте установить $config['index_page'] = 'index'; на $config['index_page'] = ''; в конфигурации. php

0 голосов
/ 06 марта 2020

В htaccess должно быть что-то вроде этого

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond $1 !^(index\.php|resources|robots\.txt)
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ index.php/$1 [L,QSA]
</IfModule>

Базовый URL должен быть таким:

$config['base_url'] = 'http://localhost/notas/';
$config['index_page'] = '';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...