.htaccess rewriterule не работает правильно на mac

У меня есть проект веб-сайта на моей программе mac le proard, и я использую встроенные apache2 и php. Я использовал свои настройки в httpd.conf и user.conf для использования htaccess. Сделанные изменения:

LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so <Directory > AllowOverride All </Directory> 

Проблема в том, что когда я хочу открыть сайт, например localhost / ~ username / site / site / index.php / welcome, index.php выполняет некоторые операции и находит правильный контроллер и правую страницу.

Но когда я пытаюсь войти на сайт, как сайт / приветствую, apache дает мне следующую ошибку:

не обнаружена

Запрошенный URL-адрес Users / username / Sites / site / index.php / welcome не найден на этом сервере.

Проблема заключается в том, что apache получает это, как будто это файл, и оператор ошибки дает его способом файловой системы, но вместо этого этот запрос должен быть выбран в index.php.

Мой файл .htaccess выглядит так:

 <ifModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [NC,QSA,L] </ifModule> 

Меня беспокоит, что эта конфигурация работает как на Linux, так и на Windows, но не работает на Mac. Я чувствую себя обреченным:)

Я тоже встретил ту же проблему! «DocumentRoot» не работает для меня в Lion.

Но это работает:

 RewriteEngine On RewriteBase /~username/YOURPath RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [NC,QSA,L] 

На Mac OSX Mountain Lion убедитесь, что для параметра AllowOverride установлено значение All on Directory /

 <Directory /> Options FollowSymLinks AllowOverride All Order deny,allow Deny from all </Directory> 

и корневой каталог корневого пути вашего документа:

 <Directory "/Library/WebServer/Documents"> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny Allow from all </Directory> 

также убедитесь, что FollowSymLinks включен в « Options .

если ваш «URL-адрес« index.php-less pretty »не находится на вашем DocumentRoot, добавьте следующий каталог RewriteBase в ваш файл .htaccess, где существует ваш index.php, например, следующий пример:

 RewriteBase /~username/site/site/ 

Если вы хотите изменить имя файла .htaccess на другое, например .acl или htaccess.txt , раскомментируйте следующую строку на своем httpd.conf

 # Various default settings Include /private/etc/apache2/extra/httpd-default.conf 

и измените .htaccess в директиве AccessFileName на все, что вам нравится, в файле extra/httpd-default.conf . Например, если вы хотите изменить файл .htaccess на htaccess.txt измените его на:

 AccessFileName htaccess.txt 

сохраните их, перезапустите веб-сервер Apache на OSX Mountain Lion и надейтесь, что вам будет хорошо. Надеюсь это поможет.

Вам нужно добавить следующую строку в файл .htaccess:

 DocumentRoot "/~username/site/" 

У меня была такая же проблема, но решения выше не работали для меня,

Удаление косой черты с самого начала делало трюк (я думаю, потому что мой браузер уже работает под правильным пользователем).

Итак, RewriteRule ^ Register /register.php

Стал RewriteRule ^ Регистр register.php

Это подтолкнуло меня! BTW Я запускаю xampp (apache 2) на mac os 10.8.

Если я помещаю .htaccess в / Library / WebServer / Documents и открываю «localhost /»; чтобы проверить это, это работает так, как ожидалось. Он просто не работает в «~ / Сайтах».