.htaccess не работает - PullRequest
       11

.htaccess не работает

2 голосов
/ 30 августа 2010

У меня есть файл .htaccess для удаления части index.php из URL-адреса в стиле codeigniter. На одном компьютере все работало нормально, но когда я скопировал файл на свой ноутбук, он, похоже, ничего не сделал. Я использую localhost на обеих машинах. Они оба работают под управлением Mac OSX 10.6 с Apache и php в комплекте и последней версией mysql. Все отлично работает, просто .htaccess не делает то, что должен. Есть ли какие-либо настройки, которые я мог бы изменить на своей первой машине и о которых забыл?!

EDIT: Мне интересно, если что-то не так с моей настройкой CI сейчас. Если я загружу base_url т.е. http://localhost/~User/project/ тогда он отлично загружается, добавляя index.php. Мой конфигурационный файл имеет

 $config['index_page'] =  '';

Однако в качестве теста я вернул это значение в index.php. Когда я загрузил base_url после этого, он вернул: http://localhost/~User/project/index.php/index.php/controller/method

Это кому-нибудь что-нибудь подсказывает?

Ответы [ 5 ]

3 голосов
/ 31 августа 2010

решено:

Я добавил новую команду каталога в мой файл httpd.conf, которая предназначалась для конкретного сайта, над которым я работал.Кажется, что сейчас счастлив, но не совсем удовлетворительный способ решения этой проблемы, если у меня есть несколько сайтов с кодовым заголовком в моем веб-корне.

2 голосов
/ 30 августа 2010

С одним лишь выстрелом в темноте у вас установлен mod_rewrite на обоих?

1 голос
/ 30 августа 2010

Если вы используете Ubuntu , вам нужно отредактировать /etc/apache2/sites-available/default.

sudo vim /etc/apache2/sites-available/default

Там, где вы видите строки, которые говорят AllowOverride измените его на:

AllowOverride All

Возможно, вам также понадобится включить mod rewrite :

sudo a2enmod rewrite

Затем перезапустите сервер Apache

sudo /etc/init.d/apache2 restart
0 голосов
/ 31 августа 2010

Вы уверены, что изменили имя корневой папки? Вот что я делаю:

Я положил это в свою корневую папку:

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

и в пути вы заменяете rootFoldel именем, которое вы используете.

надеюсь, это поможет!

0 голосов
/ 30 августа 2010

возможно вы изменили путь относительно корня сервера.он может сломать .htaccess и может быть решен с помощью оператора RewriteBase /path/to/folder/


edit

, так как проблема, как представляется, не в этом выше, вы также можете проверить error.logфайл в папке apache (вероятно, в папке журналов).у него могут быть ваши ответы, и он может сказать вам, если .htaccess анализируется неправильно или не анализируется вообще.

...