удаление codeigniter index.php - PullRequest
       0

удаление codeigniter index.php

0 голосов
/ 15 апреля 2011

У меня есть приложение для нескольких городов, и у меня есть следующие настройки для моего приложения

Это вне корня сервера

framework
   backend
   frontend

CI_2.0.1
   system

Теперь в корне сервера у меня есть 2 папки для представления 2 городов

html
   city1
      city1.php
   city2
      city2.php

Мне нужно добавить правило, чтобы избавиться от .php в URL, чтобы оно выглядело как

http://example.in/city1/search
http://example.in/city2/search

Или правило, чтобы полностью избавиться от файла index.php

Ответы [ 2 ]

0 голосов
/ 07 ноября 2013

Давайте начнем с нашего большого URL:

http://mycustomproject.com/index.php/webpages/view/my-url-title-of-the-post

Первое, что вы обычно делаете для своего проекта Codeigniter, - это удаление файла index.php из URL.Сделать это очень просто:

1-й шаг

Добавьте этот код в свой файл .htaccess в корневой каталог вашего проекта.

<IfModule mod_rewrite.c>
# Turn on URL rewriting
RewriteEngine On

# If your website begins from a folder e.g localhost/my_project then 
# you have to change it to: RewriteBase /my_project/
# If your site begins from the root e.g. example.local/ then
# let it as it is
RewriteBase /

# Protect application and system files from being viewed when the index.php is missing
RewriteCond $1 ^(application|system|private|logs)

# Rewrite to index.php/access_denied/URL
RewriteRule ^(.*)$ index.php/access_denied/$1 [PT,L]

# Allow these directories and files to be displayed directly:
RewriteCond $1 ^(index\.php|robots\.txt|favicon\.ico|public|assets|css|js|images)

# No rewriting
RewriteRule ^(.*)$ - [PT,L]

# Rewrite to index.php/URL
RewriteRule ^(.*)$ index.php/$1 [PT,L]
</IfModule>

После создания файла .htaccess структура вашего проекта должна выглядеть следующим образом:

website_folder /

–––– application /

–––- assets /

–––– system /

–––– user_guide /

---- .htaccess <------------------------- </p>

–––– index.php

–––– license.txt

2-й шаг

Теперь перейдите по адресу: application / config / config.php и измените: $ config ['index_page'] = 'index.php';

на $ config ['index_page'] = '';

Так что теперь ваш URL будет выглядеть так:

http://mycustomproject.com/webpages/view/my-url-title-of-the-post

0 голосов
/ 15 апреля 2011

К index.php и еще немного .htaccess трюк Я использую этот код (CI 2):

# Deny OR Allow Folder Indexes.
# Since we disable access to PHP files you 
# can leave this on without worries. 
# OR better yet, create a .htaccess file in
# the dir you want to allow browsing and
# set it to +Indexes
Options -Indexes

Options +FollowSymLinks

# Set the default file for indexes
DirectoryIndex index.php

<IfModule mod_rewrite.c>
    # mod_rewrite rules
    RewriteEngine on

    # If a controler can't be found - then issue a 404 error from PHP
    # Error messages (via the "error" plugin)
    # ErrorDocument 403 /index.php/403/
    # ErrorDocument 404 /index.php/404/
    # ErrorDocument 500 /index.php/500/

    # Deny any people (or bots) from the following sites: (to stop spam comments)
    # RewriteCond %{HTTP_REFERER} nienschanz\.ru [NC,OR]
    # RewriteCond %{HTTP_REFERER} porn\.com
    # RewriteRule .* - [F]
    # Note: if you are having trouble from a certain URL just 
    # add it above to forbide all visitors from that site.

    # You can also uncomment this if you know the IP:
    # Deny from 192.168.1.1

    # If the file is NOT the index.php file
    RewriteCond %{REQUEST_FILENAME} !index.php
    # Hide all PHP files so none can be accessed by HTTP
    RewriteRule (.*)\.php$ index.php/$1

    # If the file/dir is NOT real go to index
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [QSA,L]

</IfModule>

# If Mod_ewrite is NOT installed go to index.php
<IfModule !mod_rewrite.c>
    ErrorDocument 404 index.php
</IfModule>

PS Я думаю, что я не совсем ясно понял вашу проблему с файлами .php.Но если вы еще этого не сделали, вы бы посмотрели на собственную систему маршрутизации CI , которая может решить вашу проблему с другим подходом)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...