Как настроить .htaccess файлы CakePHP в WampServer? - PullRequest
5 голосов
/ 08 декабря 2010

Я совершенно не понимаю, что мне нужно сделать, чтобы запустить мой образец в CakePHP ...

Я использую сервер WAMP, он находится в папке "C: / program files / wamp /", и я использую другой раздел для своих проектов: "E: / Projects /".

есть папка для изучения CakePHP: " E: / Projects / cakephp / ". Я поместил все извлеченное содержимое CakePHP в эту папку ( состоит из: index.php, .htaccess, readme.txt и папок: app, cake, plugins, vendors ) ...

Сначала я установил псевдоним ( test ) в Apache, который указывал на " E: / Projects / cakephp / ", и он не работал ( сообщение: К сожалению, эта ссылка не работает. )

После некоторого поиска я обнаружил, что должен установить псевдоним в другой папке: " E: / Projects / cakephp / app / webroot / ", и он отлично работал и показал мне первую страницу CakePHP Framework.

Я решил все проблемы на первой странице (, используя руководство CakePHP ). Я пытался следовать учебнику по блогу CakePHP ... Я создал модель, контроллер и страницу просмотра (все связанные с темой "posts"), но когда я пытался увидеть результат, я только что получил первую страницу сервера WAMP (показывая что есть какая-то проблема в адресе)

Я использовал адрес: "http://localhost/test/posts/index" (это не сработало) Затем я попытался поместить index.php в URL: "http://localhost/test/index.php/posts/index", и это сработало!

.htaccess файлы, когда я пытаюсь добраться до корня "http://localhost/test/" работают отлично, я не знаю, что не так!

xx Я нашел тот же вопрос в StackOverflow, здесь . Все его настройки похожи на мои, за исключением того, что он установил псевдоним для корня CakePHP, и он не работал для меня!

и на самом деле я не мог найти, как я могу использовать решение ( ссылка ), которое помогло ему, потому что я думаю, что это немного отличается в моем случае!

Мои файлы htaccess для следующих папок CakePHP выглядят следующим образом:

корень кепки

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

/ приложение

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

/ приложение / Webroot

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

Я надеюсь, что кто-то может мне помочь, я очень измучен ...

Заранее спасибо за ваше время и ваши решения!

-------------------------------------------- -----------------------------------

Yoohoooo! Я нашел ответ! Я сделал много изменений во всех моих файлах htaccess! Если у вас тоже есть эта проблема, сначала удалите все ваши изменения, а затем используйте эту ссылку как отличную помощь! Надеюсь, это поможет вам тоже! CHEEEEERS! МНОГИЕ ЧАСЫ !! : D

Ответы [ 4 ]

14 голосов
/ 08 декабря 2010
  1. Щелкните правой кнопкой мыши значок WAMP на вашем панель задач
  2. Затем наведите курсор мыши на модули Apache
  3. Прокрутите вниз и убедитесь, что rewrite_module установлен
2 голосов
/ 09 сентября 2013

У меня была такая же проблема, и вот решение, которое работало для меня

это мой cakephp.conf на wamp сервере

Alias /cakephp "d:/wamp/apps/cakephp/app/webroot" 

<Directory "d:/wamp/apps/cakephp/app/webroot">
   Options FollowSymLinks
   AllowOverride all
   Require local
</Directory>

Это .htaccess файл в / cakephp (ничего не изменилось)

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

</IfModule>

Это .htaccess файл в / cakephp / app (ничего не изменилось)

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

</IfModule>

Это .htaccess файл в / cakephp / app / webroot (изменен)

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

Я только что добавил строку этой строки

RewriteBase /cakephp

После этого я смог запустить url localhost / cakephp / index.php / posts / index

Надеюсь, это поможет вам начать работу с CakePhp, используя WAMP Server

2 голосов
/ 08 декабря 2010

У меня фактически такая же проблема, как и у вас, но я не помню, как я ее решил.

Что я могу заверить, это не проблема .htaccess, а ошибка конфигурации Apache.

Я думаю часть, которую я модифицировал, была этой.

<Directory />
    #Options +Indexes
    Options FollowSymLinks
    AllowOverride All
    #Order deny,allow
    #Deny from all
</Directory>

Обратите внимание, как я прокомментировал некоторые строки. Хотя я не могу это подтвердить, поскольку у меня нет файла конфигурации по умолчанию.

1 голос
/ 09 декабря 2010

использование

  RewriteRule ^posts/(.*)  index.php/posts/index
...