2010-07-07 5 views
0

У меня есть учетная запись хостинг-аккаунта и некоторые проблемы с маршрутизацией . Файлы находятся под /cakephp по умолчанию /html папка. полный адрес все еще показывает вместо желаемогоCakephp htaccess mod_rewrite на GoDaddy

www[dot]domain[dot]org 

Пожалуйста, помогите.

Текущая настройка

/cakephp/.htaccess

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

/cakephp/app/.htaccess

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

/cakephp/app/webroot/.htaccess

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

ответ

3

Если я правильно понимаю, вы можете получить доступ к приложение из:

# http://example.com/cakephp/* # normally served from html/cakephp/ 

... но вместо этого вы хотите URL, чтобы показать, как это:

# http://example.com/*   # normally served from html/ 

Самый простой вариант будет двигаться все файлы и папки внутри каталога cakephp на один уровень, так как он предназначен для работы «из коробки», поэтому структура каталогов была такой:

# html/.htaccess    <- this file would then ... 
# html/app 
# html/app/.htaccess 
# html/app/webroot    <- ... rewrite requests to here 
# html/app/webroot/.htaccess 
# html/cake 

Если вы хотите сохранить каталог, содержащий cakephp, тогда вам нужно будет добавить свой собственный файл .htaccess в каталог html/, чтобы сообщить Apache о ваших намерениях. Структура будет выглядеть так:

# html/.htaccess    <- your .htaccess file goes here 
# html/cakephp/.htaccess  <- it should look similar to this one 
# html/cakephp/app 
# html/cakephp/app/.htaccess 
# html/cakephp/app/webroot  <- you need to rewrite requests to here 
# html/cakephp/app/webroot/.htaccess 
# html/cakephp/cake 

содержание которого может быть скопированные из первого файла .htaccess CakePHP (как отмечено выше) и слегка измененные для получения результата вы после этого. Что-то вроде этого:

RewriteEngine on 
RewriteRule ^$ cakephp/app/webroot/ [L] # rewrites requests to example.com/ 
RewriteRule (.*) cakephp/app/webroot/$1 [L] # rewrites requests to example.com/* 
+0

Hi Deizel, спасибо за ответ чувак. Я использовал второй подход, рекомендованный вами, и теперь URL-адрес главной страницы отображается по желанию. Но страницы контроллеров все еще отображают полный URL-адрес, как мне редактировать 3 файла .htaccess в cakepho. – jay

+0

Я провел некоторое тестирование и посмотрел, что вы имеете в виду. Мой ответ выше только действительно рассматривал сторону Apache вещей (.htaccess + mod_rewrite). Я (неправильно) предположил, что CakePHP определил бы правильный базовый путь (т. Е. '/' Вместо '/ cakephp /'). К сожалению, код, который работает с этим, похоронен в диспетчере, что означало бы редактирование ядра (см. Этот хак: http://kushaura.com/blog/view/name:Installing-CakePHP-in-a-Subdirectory). Поэтому я предлагаю использовать один из поддерживаемых типов установки (http://book.cakephp.org/view/32/Installation), например, первый из них. – deizel

+0

спасибо, это помогло мне – Pratik