技術(shù)人員大都使用過大名鼎鼎的ThinkPHP的程序框架,使用PHP語言開發(fā)的CMS系統(tǒng)中采用TP框架的占絕大多數(shù)。然而,對于新手來說直接上手開發(fā)整站系統(tǒng)還是有難度的,可以考慮先從一些成熟的基于TP框架的CMS系統(tǒng)開始著手學(xué)習(xí)。在系統(tǒng)中一般會采用偽靜態(tài),那么就會少不了路由規(guī)則,不熟悉正則表達(dá)式的同學(xué)有可能搞不定一些URL顯示問題,如:TP框架運行時默認(rèn)路徑運行方式,會顯示index.php/路徑,不管哪個目錄都會包含index.php這個文件名,看起來不夠大氣,如何修改路由規(guī)則去掉這個文件名,就需要對.htaccess文件進(jìn)行調(diào)整。
以Apache為例,需要在入口文件的同級添加.htaccess文件(官方默認(rèn)自帶了該文件),內(nèi)容如下:
<IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] </IfModule>
如果用的phpstudy,規(guī)則如下:
<IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1] </IfModule>
如果index.php文件存放在public中,規(guī)則如下:
<IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ public/index.php [L,E=PATH_INFO:$1] </IfModule>
如果你使用的apache版本使用上面的方式無法正常隱藏index.php,可以嘗試使用下面的方式配置.htaccess文件:
<IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L] </IfModule>
如果是Nginx環(huán)境的話,可以在Nginx.conf中添加:
location / { // …..省略部分代碼 if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=/$1 last; break; } } vhosts-conf server { listen 80; server_name xhb.com www.xhb.com; root "F:/project/xhb"; location / { index index.html index.htm index.php; if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=/$1 last; break; } #autoindex on; } location ~ \.php(.*)$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_split_path_info ^((?U).+\.php)(/?.+)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; include fastcgi_params; } }
免費咨詢:18838171308