CakePHP не работает url-переписывание на Ubuntu

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

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

  • Ubuntu12.04 на vmware сайту fusion4
  • apache2 не.2.22
  • mysql5.5
  • рнр5.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/apache2/sites-доступно / по умолчанию (AllOverride None для AllOverride)

<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/ [L]
   </IfModule>

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

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

- >каталог webroot

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

этот вопрос решен, спасибо.

3 ответов


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

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

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

можно missconfiguration:

проверьте, если файл http://your_domain_name/css/cake.generic.css Это rechable из Вашего браузера. Если нет, вы получите предупреждение на главной странице по умолчанию

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

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

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


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

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