PHP

Apache 利用 .htaccess 隱藏網址列的 .php 副檔名

71 / 100

Apache 利用 .htaccess 隱藏網址列的 .php 副檔名

 

為了安全性或是其他原因,常常看到許多網站的 URL 將實際檔案的路徑隱藏起來,比如說下方的 URL 我們就看不出該網頁是用什麼程式寫的,PHP , JSP 或是 ASP?
http://polinwei.com/post-create?blogID=27977601

 

先檢查 apahce 的 httpd.conf 這一行是否開啟 ( 以xampp為例預設是開啟的 ) :

LoadModule rewrite_module modules/mod_rewrite.so

 

PHP 寫出來的檔案應該會是「.php」,如何將它移除只留檔名呢?只要在伺服器根目錄擺放「.htaccess」,並在當中加入以下原始碼,這樣就搞定啦!

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^([^./]+)/?$ $1.php [L]

 

htaccess

 

若為虛擬主機 VirtHost 但 RewriteRule 沒有啟作用,可以在 VirtualHost 中加入 8-12 行。這樣就可以了。

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/var/www/html/FormMaking"
    ServerName form-making.yourdomain.com
    ErrorLog "logs/form-makgin-error.log"
    CustomLog "logs/form-makgin-access.log" common

  <Directory /var/www/html/FormMaking>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Require all granted
  </Directory>

</VirtualHost>