導航:首頁 > 編程語言 > apache隱藏indexphp

apache隱藏indexphp

發布時間:2022-09-13 12:30:40

1. tp5框架index.php入口文件隱藏

一,找到/public/.htaccess文件,如果你的入口文件已經移動到根目錄下,那麼你的.htaccess文件也要剪切到根目錄下,總之要確保.htaccess跟入口的index.php保持同級。
二,根據你的php環境分別設置.htaccess文件:
Apache:
<IfMole mod_rewrite.c>Options +FollowSymlinks -Multiviews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]</IfMole>

phpstudy:
<IfMole mod_rewrite.c> Options +FollowSymlinks -Multiviews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]
</IfMole>
Nginx(在Nginx.conf中添加):
location / { // …..省略部分代碼
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}

2. 怎樣隱藏yii路由中的index.php

1、確定apache httpd.conf配置文件中載入了mod_rewrite.so模塊
2、在httpd.conf找到AllowOverride None 將None改為 All
3、把下面的內容保存為.htaccess文件放到應用入口文件的同級目錄下
<IfMole mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
</IfMole>

3. Thinkphp3.2.1版本的隱藏index.php怎麼弄

可以通過URL重寫隱藏應用的入口文件index.php,下面是相關伺服器的配置參考:

[ Apache ]

1、httpd.conf配置文件中載入了mod_rewrite.so模塊

2、AllowOverride None 將None改為 All

3、把下面的內容保存為.htaccess文件放到應用入口文件的同級目錄下

<IfMolemod_rewrite.c>
RewriteEngineon
RewriteCond%{REQUEST_FILENAME}!-d
RewriteCond%{REQUEST_FILENAME}!-f
RewriteRule^(.*)$index.php/$1[QSA,PT,L]
</IfMole>

[ IIS ]

如果你的伺服器環境支持ISAPI_Rewrite的話,可以配置httpd.ini文件,添加下面的內容:

RewriteRule(.*)$/index.php?s=$1[I]

在IIS的高版本下面可以配置web.Config,在中間添加rewrite節點:

<rewrite>
<rules>
<rulename="OrgPage"stopProcessing="true">
<matchurl="^(.*)$"/>
<conditionslogicalGrouping="MatchAll">
<addinput="{HTTP_HOST}"pattern="^(.*)$"/>
<addinput="{REQUEST_FILENAME}"matchType="IsFile"negate="true"/>
<addinput="{REQUEST_FILENAME}"matchType="IsDirectory"negate="true"/>
</conditions>
<actiontype="Rewrite"url="index.php/{R:1}"/>
</rule>
</rules>
</rewrite>

[ Nginx ]

在Nginx低版本中,是不支持PATHINFO的,但是可以通過在Nginx.conf中配置轉發規則實現:

location/{//…..省略部分代碼
if(!-e$request_filename){
rewrite^(.*)$/index.php?s=$1last;
break;
}
}

其實內部是轉發到了ThinkPHP提供的兼容模式的URL,利用這種方式,可以解決其他不支持PATHINFO的WEB伺服器環境。

如果你的ThinkPHP安裝在二級目錄,Nginx的偽靜態方法設置如下,其中youdomain是所在的目錄名稱。

location/youdomain/{
if(!-e$request_filename){
rewrite^/youdomain/(.*)$/youdomain/index.php?s=$1last;
}
}

原來的訪問URL:

http://serverName/index.php/模塊/控制器/操作/[參數名/參數值...]

設置後,我們可以採用下面的方式訪問:

http://serverName/模塊/控制器/操作/[參數名/參數值...]

默認情況下,URL地址中的模塊不能省略,如果你需要簡化某個模塊的URL訪問地址,可以通過設置模塊列表和默認模塊或者採用子域名部署到模塊的方式解決,請參考後面的模塊和域名部署部分。

4. php怎麼辦url中的index.php去掉

為美觀一些,去掉CI默認url中的index.php。分三步操作:

1.打開apache的配置文件,conf/httpd.conf :

LoadMole rewrite_mole moles/mod_rewrite.so,把該行前的#去掉。

搜索 AllowOverride None(配置文件中有多處),看注釋信息,將相關.htaccess的該行信息改為AllowOverride All。

2.在CI的根目錄下,即在index.php,system的同級目錄下,建立.htaccess,直接建立該文件名的不會成功,可以先建立記事本文件,另存為該名的文件即可。內容如下(CI手冊上也有介紹):

RewriteEngine on

RewriteCond $1 !^(index/.php|images|robots/.txt)

RewriteRule ^(.*)$ /index.php/$1 [L]

如果文件不是在www的根目錄下,例如我的是:http://localhost/CI/index.php/,第三行需要改寫為RewriteRule ^(.*)$ /CI/index.php/$1 [L]。

另外,我的index.php的同級目錄下還有js文件夾和css文件夾,這些需要過濾除去,第二行需要改寫為:RewriteCond $1 !^(index/.php|images|js|css|robots/.txt)。

3.將CI中配置文件(system/application/config/config.php)中$config['index_page'] = "index.php";將$config['index_page'] = ""; 。

ok,完成。還要記得重啟apache。

5. apache 偽靜態如何隱藏index.php

Apache偽靜態配置方法有兩種:

在網站根目錄下添加文件,.htaccess,在此文件內寫偽靜態規則,使用它需要在apache配置文件http.conf中完成相應配置.具體配置方法網上很多,這里不再贅述.

而另一種是直接在httpd.conf中使用.這種方法性能高於前者。

應用場景

(1),採用.htaccess的場景

用戶需要針對特定目錄改變伺服器的配置而又沒有root許可權的情況下,可以通過.htaccess文件實現。

如果伺服器管理員不願意頻繁修改配置,則可 以允許用戶通過.htaccess文件自己修改配置. 比如ISP,在同一個機器上運行了多個用戶站點,希望用戶可以自

己改變配置,便可以配置好apache,開啟對.htaccess文件的支持即可.

(2),不採用.htaccess的場景

雖然上述步驟1可以實現,但一般都應該盡可能地避免使用.htaccess文件。任何希望放在.htaccess文件中的配置,都可以放在主配置文件(http.conf)的段中,而且更高效。

(3)避免使用.htaccess文件有兩個主要原因

首先是性能。如果AllowOverride啟用了.htaccess文件,則Apache需要在每個目錄中查找.htaccess文件,因此,無論是否真正用到,啟用.htaccess都會導致

性能的下降。另外,對每一個請求,都需要讀取一次.htaccess文件。

還有,Apache必須在所有上級的目錄中查找.htaccess文件,以使所有有效的指令都起作用,所以,如果請求/www/htdocs/example中的頁面,Apache必須查找以下文件:

/.htaccess
/www/.htaccess
/www/htdocs/.htaccess
/www/htdocs/example/.htaccess

總共要訪問4個額外的文件,即使這些文件都不存在。(注意,這可能僅僅由於允許根目錄」/」使用.htaccess ,雖然這種情況並不多。)

其次是安全。這樣會允許用戶自己修改伺服器的配置,這可能會導致某些意想不到的修改,所以請認真考慮是否應當給予用戶這樣的特權。但是,如果給予用

戶較少 的特權而不能滿足其需要,則會帶來額外的技術支持請求,所以,必須明確地告訴用戶已經給予他們的許可權,說明AllowOverride設置的值,並引導他

們參閱相應的說明,以免日後生出許多麻煩。

注意,在/www/htdocs/example目錄下的.htaccess文件中放置指令,與在主配置文件中段中放置相同指令,是完全等效的。

總結

由上我們可以知道,使用.htaccess文件具有性能上的不利之處,所以我們應該盡可能避免使用.htaccess文件,下面介紹一種不使用.htaccess文件進行偽靜態

的方法:

Apache 1.x 的用戶請檢查 conf/httpd.conf 中是否存在如下兩段代碼:
LoadMole rewrite_mole libexec/mod_rewrite.so
AddMole mod_rewrite.c

Apache 2.x 的用戶請檢查 conf/httpd.conf 中是否存在如下一段代碼:
LoadMole rewrite_mole moles/mod_rewrite.so
如果存在,且以#開頭,請刪除#。然後在配置文件(通常就是 conf/httpd.conf或者conf/extra/httpd-vhosts.conf)中加入如下代碼。此時請務必注意,如果網

站使用通過虛擬主機來定義,請務必加到虛擬主機配置段 中去,如果加在虛擬主機配置外部將可能無法使用。改好後然後將 Apache 重啟。



①.在apache配置文件httpd.conf中找到:

LoadMole rewrite_mole moles/mod_rewrite.so
這句,去掉前邊的注釋符號「#」,如果沒有則添加這句。

②.在代碼:

Options FollowSymLinks
AllowOverride None
下面添加偽靜態代碼(以Wordpress偽靜態為例):

RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
其中/usr/local/apache/htdocs/wwwtest即為要進行偽靜態的網站的根目錄

③.重啟apache

6. 如何隱藏已經上線的index.php

第一步:'URL_MODEL'=>'2',
第二步:根路徑下建立一個.htaccess,可以通過一些軟體比如EditPlus去另存為,windows可能不能直接創建
第三步:
<IfMole mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfMole>
放到.htaccess中保存

第四步開啟Apache rewrite 模式 去配置文件中#LoadMole rewrite_mole moles/mod_rewrite.so 去掉前面的#,AllowOverride None改為AllowOverride All ok
當然如果你不是Apache 是IIS就不能這樣配了

7. apache重定向到https和TP5的隱藏index重定向

<IfMole mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/tz.PHP
</IfMole>

8. Thinkphp3.2.1版本的隱藏index.php怎麼弄

可以通過URL重寫隱藏應用的入口文件index.php,下面是相關伺服器的配置參考:

[ Apache ]

httpd.conf配置文件中載入了mod_rewrite.so模塊

AllowOverride None 將None改為 All

把下面的內容保存為.htaccess文件放到應用入口文件的同級目錄下

<IfMolemod_rewrite.c>
RewriteEngineon
RewriteCond%{REQUEST_FILENAME}!-d
RewriteCond%{REQUEST_FILENAME}!-f
RewriteRule^(.*)$index.php/$1[QSA,PT,L]
</IfMole>

[ IIS ]

如果你的伺服器環境支持ISAPI_Rewrite的話,可以配置httpd.ini文件,添加下面的內容:

RewriteRule (.*)$ /index.php?s=$1 [I]

在IIS的高版本下面可以配置web.Config,在中間添加rewrite節點:

<rewrite>
<rules>
<rulename="OrgPage"stopProcessing="true">
<matchurl="^(.*)$"/>
<conditionslogicalGrouping="MatchAll">
<addinput="{HTTP_HOST}"pattern="^(.*)$"/>
<addinput="{REQUEST_FILENAME}"matchType="IsFile"negate="true"/>
<addinput="{REQUEST_FILENAME}"matchType="IsDirectory"negate="true"/>
</conditions>
<actiontype="Rewrite"url="index.php/{R:1}"/>
</rule>
</rules>
</rewrite>
[Nginx]

Nginx低版本中,是不支持PATHINFO的,但是可以通過在Nginx.conf中配置轉發規則實現:

location/{//…..省略部分代碼
if(!-e$request_filename){
rewrite^(.*)$/index.php?s=$1last;
break;
}
}

其實內部是轉發到了ThinkPHP提供的兼容模式的URL,利用這種方式,可以解決其他不支持PATHINFO的WEB伺服器環境。

如果你的ThinkPHP安裝在二級目錄,Nginx的偽靜態方法設置如下,其中youdomain是所在的目錄名稱。

location/youdomain/{
if(!-e$request_filename){
rewrite^/youdomain/(.*)$/youdomain/index.php?s=$1last;
}
}

原來的訪問URL:

http://serverName/index.php/模塊/控制器/操作/[參數名/參數值...]

設置後,我們可以採用下面的方式訪問:

http://serverName/模塊/控制器/操作/[參數名/參數值...]

9. 如何去掉index.php目錄

apache去掉index.php
1.編輯conf/httpd.conf配置文件
#LoadMole rewrite_mole moles/mod_rewrite.so 把該行前的#去掉
同時對應Directory下要配置 AllowOverride All
2.在 CI 根目錄下(即在index.php,system的同級目錄下)新建立一個配置文件,命名為: .htaccess 內容如下:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|robots\.txt)
RewriteRule ^(.*)$ index.php/$1
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(application|moles|plugins|system|themes) index.php/$1 [L]
3.把system/application/config/config.php 中$config['index_page'] = "index.php";改為$config['index_page'] = "";
4.重啟apache

2
nginx去掉index.php
1.編輯nginx.conf文件
vi /usr/local/xxxxx/nginx/conf/nginx.conf
#nginx去掉index.php
location / {
rewrite ^/$ /index.php last;
#防止某些文件夾被直接訪問
rewrite ^/(?!index\.php|robots\.txt|uploadedImages|resource|images|js|css|styles|static)(.*)$ /index.php/$1 last;
}
2.config/config.php下配置$config['index_page'] = '';
3..重啟nginx
3
去掉默認的index方法,如圖的URL配置如:
config/routes.php,配置$route['catalogues/(:any)'] = "catalogues/index/$1";
其中(:any)表示匹配所有除CI保留關鍵字外的內容,後面的$1為index傳入的參數內容。
多個參數採用多個(:any),如兩個參數的為:$route['catalogues/(:any)/(:any)'] = "catalogues/index/$1/$2";
註:route規則如果同一目錄下精確配置要在模糊配置上面,否則不起作用,如:
$route['catalogues/more'] = "catalogues/more";
$route['catalogues/(:any)'] = "catalogues/index/$1";

END
注意事項

route規則如果同一目錄下精確配置要在模糊配置上面,否則不起作用
nginx伺服器不需要.htaccess文件

10. 如何隱藏url中的index.php

第一步:'URL_MODEL'=>'2',
第二步:根路徑下建立一個.htaccess,可以通過一些軟體比如EditPlus去另存為,windows可能不能直接創建
第三步:
<IfMole mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfMole>
放到.htaccess中保存

第四步開啟Apache rewrite 模式 去配置文件中#LoadMole rewrite_mole moles/mod_rewrite.so 去掉前面的#,AllowOverride None改為AllowOverride All ok
當然如果你不是Apache 是IIS就不能這樣配了

閱讀全文

與apache隱藏indexphp相關的資料

熱點內容
壓縮因子定義 瀏覽:968
cd命令進不了c盤怎麼辦 瀏覽:214
葯業公司招程序員嗎 瀏覽:974
毛選pdf 瀏覽:659
linuxexecl函數 瀏覽:727
程序員異地戀結果 瀏覽:374
剖切的命令 瀏覽:229
干什麼可以賺錢開我的世界伺服器 瀏覽:290
php備案號 瀏覽:990
php視頻水印 瀏覽:167
怎麼追程序員的女生 瀏覽:487
空調外壓縮機電容 瀏覽:79
怎麼將安卓變成win 瀏覽:459
手機文件管理在哪兒新建文件夾 瀏覽:724
加密ts視頻怎麼合並 瀏覽:775
php如何寫app介面 瀏覽:804
宇宙的琴弦pdf 瀏覽:396
js項目提成計算器程序員 瀏覽:944
pdf光子 瀏覽:834
自拍軟體文件夾名稱大全 瀏覽:328