PHP 之 Ci框架下隱藏index.php

1. 修改 apache 配置文件 

  • 開啓重寫模塊 conf/httpd.conf
去掉前面的#
LoadModule rewrite_module modules/mod_rewrite.so  

對於Ubuntu,須要在apache安裝目錄下的 mods-enabled 文件夾中建立軟鏈接。php

進入 /mods-enabled 下,apache

cd mods-enabled/
sudo
ln -s ../mods-available/rewrite.load rewrite.load # 要確保 ../mods-available/rewrite.load 文件存在,不存在須要安裝rewrite模塊

注:apache安裝目錄下:mods-available---未啓用的模塊,mods-enabled----已啓用的模塊ubuntu

  • AllowOverride None 修改成 AllowOverride All

能夠在apache的配置文件 conf/httpd.conf 末尾添加以下代碼,或是在 sites-enabled 文件夾下新建個 .conf 文件,文件名隨意,也可像 mods-enabled/ 下那樣建立連接。app

Alias /athena "/home/liuqian/workspace/athena/"    # 依據實際狀況改成本身的路徑
<Directory "/home/liuqian/workspace/athena/">   # 依據實際狀況改成本身的路徑
    Options Indexes MultiViews FollowSymLinks
    AllowOverride All # 主要是這個
    Order allow,deny
    Allow from all
</Directory>

注:apache安裝目錄下:sites-available---未加載的配置文件,sites-enabled----已加載的配置文件ide

2. 添加 .htaccess 文件

進入到項目文件夾下,在 index.php 所在的目錄下建立 .htaccess 文件網站

       文件中寫以下:spa

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|BJUI|captcha|js|plugins|images|robots\.txt) # index.php的同級目錄下還有要過濾除去的文件夾,把名字一併寫到這裏
RewriteRule ^(.*)$ /athena/index.php/$1 [L]  # 若是網站就在根目錄下,就直接寫 index.php/$1 [L],個人index.php是在根目錄下的athena文件下中

#若是沒有安裝mod_rewrite模塊,全部的404頁面都將被 #發送到index.php,此時,程序會像沒有設置隱藏時同樣運行 ErrorDocument
404 index.php
 

3. 修改Ci配置文件 application/config/config.php

$config['index_page'] = "index.php";

改成:rest

$config['index_page'] = "";

 

4. 重啓apache 就ok了。

sudo apachectl restart  # 這裏是ubuntu的重啓命令
相關文章
相關標籤/搜索