apache對文件后綴的解析方法是”.”后邊的都是后綴,從后到前,如果后綴無效,會解析前一個,例如 1.php.x1.x2.x3 他會先解析x3,不存在解析x2,不存在解析x1,都不存在就只能解析php了。如圖:
定義后綴,但是不可能所有后綴都定義吧?x1.x2.x3可以換成任意后綴
例如1.php.a,.a沒有定義,apache不明白a是什么后綴,就向前解析,也就是去解析php。
用偽靜態(tài)能解決這個問題,重寫類似.php.*這類文件
打開apache的httpd.conf
找到LoadModule rewrite_module modules/mod_rewrite.so
把#號去掉,重啟apache,在網(wǎng)站根目錄下建立.htaccess文件,代碼如下:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .(php.|php3.) /index.php
RewriteRule .(pHp.|pHp3.) /index.php
RewriteRule .(phP.|phP3.) /index.php
RewriteRule .(Php.|Php3.) /index.php
RewriteRule .(PHp.|PHp3.) /index.php
RewriteRule .(PhP.|PhP3.) /index.php
RewriteRule .(pHP.|pHP3.) /index.php
RewriteRule .(PHP.|PHP3.) /index.php
</IfModule>
可能會誤殺,對我來說暫時也沒發(fā)現(xiàn)誤殺。根據(jù)自己要求修改自己定義的執(zhí)行php的后綴,用|隔開就行。 /index.php可以換成你想要顯示的文件.
效果如圖: