Cakephp не работает url-rewriting на Ubuntu

все. На этот раз я попробую cakephp, но у меня есть "переписывание URL неправильно настроено на вашем сервере. 1) Помогите мне настроить его. 2) Я не могу/не могу использовать переписывание URL". Я мог знать, что это проблемы с apache и .htaccess, такие как /etc/apache 2/sites-avaliable/default и каждый каталог .htaccess.

Моя среда разработки...

  • Ubuntu12.04 на vmware fusion4
  • apache2.2.22
  • mysql5.5
  • php5.3.10
  • cakephp2.1

Выполняется мой процесс...

1)/etc/apache2/httpd.conf

<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>

2), позволяющий mod_rewrite

sudo a2enmod rewrite
sudo service apache2 reload

3) редактирование /etc/apache 2/sites-avaliable/default (AllOverride None to AllOverride All)

<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order Allow,Deny
Allow from all
</Directory>

prompt: sudo service apache2 reload

4) редактирование или проверка каждого файла .htaccess - > корневой каталог торта

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]
   </IfModule>

- > корневой каталог приложения

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteRule    ^$    webroot/    [L]
   RewriteRule    (.*) webroot/$1    [L]
   </IfModule>

- > веб-каталог

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

Эта проблема решена, спасибо.

Ответ 1

У меня тоже была эта проблема. Оказывается, файл .htaccess не копируется вместе с источником cakePHP. Это обычная проблема при использовании команды cp или отсутствии скрытых файлов, видимых в браузере файлов, если вы не скопируете каталог верхнего уровня.

Выполнение прямой копии файла в папку проекта исправлено для меня без необходимости связываться с настройками apache.

cp ~/git/cakePHP/.htaccess ~/project/folder/

Ответ 2

Возможная конфигурация:

Проверьте, что файл http://your_domain_name/css/cake.generic.css можно перехватить из вашего браузера. Если нет, вы получите предупреждение в Default-Homepage

Если у вас есть корневой каталог {HOME}/css, UrlRewriting не перенаправляет http://your_domain_name/css/cake.generic.css на {HOME}/app/webroot/css/cake.generic.css.

Таким образом, css файл не будет найден, в результате чего сообщение будет неправильно настроено для перезаписи URL-адресов. (Посмотрите приложение File/View/Pages/home.cpt)

Решение: Полностью удалите каталог {HOME}/css на корневом уровне. Поместите свой css файл в {HOME}/app/webroot/css.

Ответ 3

Это может быть проблема с правами доступа к файлам. Попробуйте рекурсивно установить разрешения для 777 для каталогов webroot и tmp. Для каталога tmp может потребоваться sudo.

sudo chmod -R 777 /path/to/app/webroot/
sudo chmod -R 777 /path/to/app/tmp/