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/