2014-08-14 4 views
0

Я хочу удалить /public/index.php из моих URL-проекта CodeIgniter и Bonfire ..Rename URL в Codeigniter

Мой текущий URL: http://localhost/public/index.php/page Желаемая URL: http://localhost/page

, но я хочу пути для ссылки и изображения и роботов нетронутый! Как это сделать? Любые хорошие ресурсы для работы с .htaccess?

+0

попробуйте сначала прочитать документы/google и рассказать, что вы сделали? – dhidy

+0

Я не совсем понимаю apache язык – LazyPeon

+0

, чтобы удалить папку 'public', вы можете использовать vhost, чтобы удалить' index.php' вы можете прочитать документы. Codeigniter - хорошая основа, потому что это идеальные документы. – dhidy

ответ

1

Я думаю, вы должны принять следующие шаги:

  1. сдвигового файл .htaccess из приложения к корню справочник

  2. удалить/комментировать старый код (используя #) в старом файле и паштет ниже код

RewriteEngine на

RewriteBase/

RewriteCond% {REQUEST_FILENAME}! -f RewriteCond % {REQUEST_FILENAME}! -d RewriteRule . * index.php?/$ 0 [PT, L] RewriteRule^/? Аякса /(.*)$ ajax.php? $ 1 [NC, QSA, L]

  1. удалить index.php из файла конфигурации из $ config ['index_page'], как показано ниже $ config ['index_page'] = '';

  2. Затем активировать модуль переписывания из appache

Он должен работать для вас.

+0

hmmm это прекрасно работает, но теперь мне нужно изменить каждую ссылку на всех моих страницах и исключить 'public/index.php' каким-либо образом вокруг этого? – LazyPeon

+0

Ну, я не знаю, сколько ссылок вам нужно изменить, я думаю, вам придется их менять. Но в будущем вы можете хранить критические ссылки в константном файле в файле config в качестве константы и использовать константу в каждом исходном файле. –

+0

еще одна вещь, о которой вы не возражаете, объясняя, что такое последний RewriteRule? Что-то о ajax, я обнаружил, что все отлично работает без него – LazyPeon

1

Try чтение CodeIgniter URLs, подраздел 'Удаление файла index.php':

в .htaccess

RewriteEngine on 
RewriteCond $1 !^(index\.php|images|robots\.txt) 
RewriteRule ^(.*)$ /index.php/$1 [L] 

в config.php:

$config['index_page'] = ''; 
+0

Мне это не помогло, так как мне также нужно удалить 'public /' bit, не говоря уже о ссылках на ссылки, нет в наличии – LazyPeon

+0

Вы голосуете правильные ответы? – Webice

+0

не был тем, кто был downvoted – LazyPeon

0

Вы копируют. htaccess файл из приложения, который я думал в вашем файле.

Или добавьте новый .htaccess к своему основанию.

RewriteEngine on 
RewriteCond $1 !^(index\.php|images|robots\.txt) 
RewriteRule ^(.*)$ /index.php/$1 [L] 
+0

да Я также прочитал руководство Codeigniter, однако это не работает – LazyPeon

1

Вы можете попробовать это?

RewriteEngine On 

RewriteBase/



#Removes access to the system folder by users. 

#Additionally this will allow you to create a System.php controller, 

#previously this would not have been possible. 

#'system' can be replaced if you have renamed your system folder. 

RewriteCond %{REQUEST_URI} ^system.* 

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] 

это прекрасно работает на моем конце

+0

Я получаю экран «Добро пожаловать в Bonfire v0.7-dev», и я могу продолжить оттуда, но потом все то же самое – LazyPeon

+0

есть вы читаете эту тему? https://ellislab.com/codeigniter/user-guide/helpers/url_helper.html – user07192010

+0

или попробуйте: http://stackoverflow.com/questions/1445385/how-to-remove-index-php-in -codeigniters-path/7930935 # 7930935 – user07192010