У меня есть проект веб-сайта на моей программе 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 /»; чтобы проверить это, это работает так, как ожидалось. Он просто не работает в «~ / Сайтах».