Дружественные URL-адреса cakephp 2.3

Я новичок в использовании cakephp, и я пытаюсь установить дружественные URL-адреса для своего сайта, но у меня возникают проблемы.

Я уже сделал все шаги, о которых говорится в книге cakephp 2.3, и моя конфигурация apache говорит, что выполняется mod_rewrite.

И когда я захожу на главную страницу торта, он говорит, что перезапись URL-адреса не настроена, и когда я хочу получить доступ к своей сети, мне нужно пройти через www.mysite.com/index.php/controller/function и, конечно, , я хочу это: www.mysite.com/controller/function, и если я попробую этот маршрут, он говорит, что он не найден на моем сервере (и у меня созданы контроллер и функция).

Это мои файлы .htacces:

корневая директория:

<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>

Каталог Webroot:

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

person user2209678    schedule 26.03.2013    source источник
comment
Это на локальном сервере M / W / LAMP или на каком-то платном веб-хостинге? Если это установка Apache, которую вы настроили самостоятельно, вы можете проверить конфигурацию, чтобы убедиться, что AllowOverride All установлен для виртуального хоста. Однако, если это платный хостинг, то это, вероятно, уже будет установлено провайдером.   -  person Joseph    schedule 26.03.2013
comment
Это на моем собственном сервере ubuntu, я ввел файл apache2.conf (потому что я прочитал в Интернете, что конфигурация находится здесь, а не в httpd.conf) и добавил следующие строки: '‹Directory /› Options FollowSymLinks AllowOverride Все # Запретить заказ, разрешить # Запретить со всех ‹/Directory›   -  person user2209678    schedule 26.03.2013


Ответы (1)


Я решил Это. в файле / etc / apache2 / sites-enabled / 000-default каталог указывал на / var / www, а мой каталог cakephp находился в / var / www / html / myapp / cakephp. Я поменял его, и теперь он работает! :)

person user2209678    schedule 26.03.2013
comment
Если ваш веб-каталог находится в / var / www / html / myapp / cakephp, тогда / var / www в файле 000 по умолчанию будет действительным, если вы заходите на сайт по адресу localhost / html / myapp / cakephp, но если вы хотите получить к нему доступ просто как localhost, тогда вам нужно будет изменить его, как вы упомянули. - person Joseph; 27.03.2013