2009-07-15 2 views
3

Как удалить index.php с URL-адреса cakephp? Чтобы получить доступ к папке с моими формами, я должен указать URL: http://localhost/cake_1_2/index.php/forms.remove index.php from cakephp url

Как удалить этот index.php?

Я удалил .htaccess из папок, как упоминалось в core.php, и раскомментировал строку App.baseUrl. Тем не менее, я не могу просмотреть страницу без index.php в URL-адресе.

+0

Э-э ... почему бы вам это сделать? index.php не должен быть видимым по умолчанию, но теперь, когда вы удалили файлы .htaccess, это будет наиболее заметно. –

+0

Тогда не следует ли удалять эти файлы? Я не хочу index.php в моем url. – Angeline

+3

Если вы хотите использовать чистые URL-адреса без index.php, вам нужны файлы .htaccess, а также mod_rewrite. – dhofstet

ответ

2

Если вы используете CakePHP с mod_rewrite (чтобы получить красивые URL-адреса), вы можете создавать новые папки в пределах WEBROOT и получать доступ к файлам в порядке.

Пример:

Site/webroot/forms/form.php = http://www.sitename.com/forms/form.php 

mod_rewrite CakePHP является установка для проверки существующих файлов в WEBROOT и НЕ передать их в index.php.

Если вам нужно встать в папку вне веб-сайта, вы можете подумать о том, чтобы играть с символическими ссылками.

1

Просьба указать раздел CakePHP Install guide для mod_rewrite. После активации в Apache симпатичные URL-адреса будут работать. Если вы не используете Apache, вы застряли с уродливыми URL-адресами.

+0

Неправда. Вы можете использовать mod_rewrite и короткие URL-адреса в lighttpd. –

0

вы также можете проверить этот учебник мод rewrite here. имеет общую информацию, которая будет полезна для очистки URL во многих ситуациях. есть также примеры.

1

Просто следуйте этим следующие шаги, чтобы проверить это или нет

  1. Проверьте вас корень, приложение, Webroot содержит действительный файл .htaccess.

  2. Сервер apachee имеют следующую конфигурацию:

    <Directory /> 
    Options FollowSymLinks 
    AllowOverride All# 
    Order deny,allow# 
    Deny from all 
    </Directory> 
    
  3. Также эта линия uncammented:

    LoadModule rewrite_module libexec/apache2/mod_rewrite.so 
    

Затем перезагрузите apache, чтобы увидеть изменения

1

I имел ту же проблему и имел index.php в UR L. Вы редактируете неправильную область в httpd.conf. Кроме того, убедитесь, что ваши файлы .htaccess существуют в: /.htaccess, /app/.htaccess и /app/webroot/.htaccess

Ваш httpd.conf должен выглядеть примерно так:

# Leave this area alone, CakePHP docs are wrong 
<Directory /> 
    Options FollowSymLinks 
    AllowOverride None 
    Order deny,allow 
    Deny from all 
</Directory> 

# Match this area 
<Directory "/SomePath/app/webroot"> 
    Options Indexes FollowSymLinks MultiViews 
    AllowOverride All # Turn AllowOverride All on here 
    Order allow,deny 
    Allow from all 
</Directory> 

После выполнения это, я могу легко создать маршруты & страницы доступа, такие как: http://localhost/about/

Наслаждайтесь!

0

Итак, все должно быть в порядке? У вас уже есть mod_rewrite?

Если mod_rewrite правильно загружен, файлы .htaccess находятся на месте и индексируются.php по-прежнему появляется в ссылках, то это, скорее всего, проблема с файлом конфигурации ядра core.php.

Проблема причина

В моем случае это была проблема с опцией конфигурации App.baseUrl:

Configure::write('App.baseUrl', env('SCRIPT_NAME')); 

Решение проблемы

Вот как я установил эту проблему (и несколько других с переадресаций) путем комментирования следующей строки из core.php:

// Configure::write('App.baseUrl', env('SCRIPT_NAME')); 

или торт 3+ в config/app.php

//'baseUrl' => env('SCRIPT_NAME') 
Смежные вопросы