2013-04-14 3 views
3

Я использую Ubuntu 12.10. И мне не удается удалить «index.php» с моего URL-адреса сайта codeigniter.CodeIgniter URL-адрес маршрутизации не работает

Мои файлы .htaccess выглядят следующим образом: у меня есть код внутри папки hmvcExample.

*

RewriteEngine On 
RewriteBase /hmvcExample/ 

### Canonicalize codeigniter URLs 

# If your default controller is something other than 
# "welcome" you should probably change this 
RewriteRule ^(welcome(/index)?|index(\.php)?)/?$/[L,R=301] 
RewriteRule ^(.*)/index/?$ $1 [L,R=301] 

# Removes trailing slashes (prevents SEO duplicate content issues) 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.+)/$ $1 [L,R=301] 

# Enforce www 
# If you have subdomains, you can add them to 
# the list using the "|" (OR) regex operator 
RewriteCond %{HTTP_HOST} !^(www|subdomain) [NC] 
RewriteRule ^(.*)$ http://www.domain.tld/$1 [L,R=301] 

# Enforce NO www 
#RewriteCond %{HTTP_HOST} ^www [NC] 
#RewriteRule ^(.*)$ http://domain.tld/$1 [L,R=301] 

### 

# 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] 

# Without mod_rewrite, route 404's to the front controller 
ErrorDocument 404 /index.php 

*

И мой я удалил index.php из config.php. Но я все еще получаю следующее сообщение об ошибке при попытке загрузить сайт без «index.php»

Не найден Запрошенный URL/hmvcExample/регистрация не была найдена на этом сервере. Apache/2.2.22 (Ubuntu) Сервер на локальном хосте Порт 80

Пожалуйста, помогите. Благодарю.

+0

Я вижу закрытие '' тег, но без соответствия 'перед ним. Если это так в вашем фактическом файле .htaccess, вы должны, вероятно, исправить это в первую очередь. –

+0

Я все еще борюсь с htaccess тоже, но из-за того, что вы переписываете базу на hmvcExample, а затем пытаетесь перейти к hmvcExample/signup, вы не должны пытаться перейти к простому/signup? –

+0

Произошла ошибка с моего конца, когда вы справлялись и вставляли содержимое .htaccess. В верхней части файла имеется открывающий тег . – TA3

ответ

2

Это, кажется, один из вопроса следует искали - How to remove "index.php" in codeigniter's path

И есть еще один config, что вам нужно отредактировать:

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

Изменить строку, что написано выше на следующее:

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

Если вы сделали все это, по-прежнему может быть один вопрос слева - enable mod_rewrite

+0

$ config ['uri_protocol'] = 'REQUEST_URI'; установлено, и mod_rewrite также включен. – TA3

+0

@TharakaAbeyratne Являются ли другие сайты на вашем сервере рабочими? ввел '.htaccess' – Aniket

+2

Эй, я смог исправить это сейчас. Мне пришлось разрешить каталоги (я думаю, именно так оно и называется.) в etc/apache2/sites-available и откройте файл «по умолчанию» и установите «AllowOverride none» в «AllowOverride All». Всем спасибо. – TA3

1

Убедитесь, что у вас есть AllowOverride All установить в /etc/httpd/conf/httpd.conf (CentOS Apache 2.2)

конфигурации:

$config['index_page'] = ''; 
Смежные вопросы