2016-10-18 4 views
1

Я хочу выполнить маршрутизацию в код-воспламенитель, и я сделал следующие шаги также , но он не работает. Я также выполнил все необходимые настройки, но затем также его не работает .Пожалуйста, дайте мне знать, что я упускаю какую-либо вещь или нет.Маршрутизация Codeigniter не работает со следующей процедурой

Шаг 1

Добавить этот в файл .htaccess

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    #RewriteBase/

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule^index.php [QSA,L] 
</IfModule> 

Шаг 2:

Удалить index.php в CodeIgniter конфигурации

$config['index_page'] = ''; 

Шаг 3

Добавить это в route.php

$route['Viewsignup'] = 'Login/index/Viewsignup'; 

Мой URL такова: http://localhost/machinetest/index.php/Login/Viewsignup

Я хочу, чтобы этот URL: http://localhost/machinetest/index.php/Viewsignup

Пожалуйста, помогите мне, Спасибо in Advance

+1

'$ маршрут [ 'Viewsignup'] = 'Логин/индекс/Viewsignup',' должен быть '$ маршрут [ 'Viewsignup'] = 'Войти/Viewsignup';' – devpro

ответ

2

.htaccess здесь не должно быть. Попробуйте

$route['Viewsignup'] = 'Login/Viewsignup'; 

Это приведет вас в Viewsignup метод Login контроллера, когда ваш URL выглядит http://localhost/machinetest/index.php/Viewsignup

И для удаления index.php из URL просто обновить ваш .htaccess со следующими

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

Теперь http://localhost/machinetest/Viewsignup URL будет работать также

+1

я думаю, ур прямо здесь :) – devpro

+0

Привет, я сделал это, но потом тоже не работал. –

+0

@varunjoshi Итак, что вы видите, когда попадаете этот URL? 'http: // localhost/machinetest/Viewsignup' –

0

На некоторых серверах Apache настроен на игнорирование некоторых или всех директив в файлах .htaccess. Это по соображениям безопасности. Директива AllowOverride контролирует, какие функции будут разрешены в файлах .htaccess. Например, AllowOverride None может отключать файлы htaccess для папки и ее подпапок.

Проверьте конфигурационный файл Apache, для которого разрешена директива AllowOverride, в каталог, содержащий вашу проблему. Файл htaccess.

Если вы не знаете, какой конфигурационный файл нужно посмотреть, начните с основного файла конфигурации Apache httpd.conf или apache2.conf. Если ваш сайт настроен в файле, включенном httpd.conf (например, файле конфигурации виртуальных хостов), вам нужно будет посмотреть в этом файле. См. Location of httpd.conf on CentOS, Ubuntu, Mac and others, чтобы найти свой httpd.conf.

Чтобы включить с помощью файла .htaccess, изменить AllowOverride None to AllowOverride All.

Например, для 5.3 сервера CentOS, мне нужно, чтобы изменить настройку AllowOverride в файле /etc/httpd/conf.d/virtualhosts.conf.

httpd.conf перед:

Options FollowSymLinks 
AllowOverride None 

httpd.conf после:

Options FollowSymLinks 
AllowOverride All 

Имейте в виду, что включение Htaccess файлов влияет на безопасность, так как Htaccess файлы переопределения конфигурации Apache. Например, если ваш сайт обеспечивает загрузку, хакер может загрузить файл .htaccess на ваш сервер и использовать его для доступа к вашему серверу. Существуют опции AllowOverride, которые ограничивают директивы, которые будут использоваться из файла .htaccess. См documentation for AllowOverride.

см http://smartwebdeveloper.com/apache/htaccess-problems

+0

Привет, я проверил файл httpd.conf в своих системах, который находится в /opt/lampp/etc/httpd.conf, но у них уже есть параметр Allowoverride All, а также маршрутизация не работает. –

Смежные вопросы