我們知道,在thinkphp的案例中有一個.htaccess文件,里面配置了URL的一些重寫規則,如:
- RewriteEngine on
- RewriteCond %{REQUEST_FILENAME} !-d
- RewriteCond %{REQUEST_FILENAME} !-f
- RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
它的作用就是設置URL重寫以隱藏URL中含有的index.php,一般來說URL過長或者動態化的URL都不利于SEO因此隱藏的目的就是要達到更好的SEO效果.
明白了.htaccess文件的作用,接下來就是讓它工作起來,要使.htaccess文件起作用,通常需要服務器開啟URL_REWRITE模塊才能支持.
下面是Apache的配置過程:
1、httpd.conf配置文件中加載了mod_rewrite.so模塊
在httpd.conf配置文件搜索 LoadModule rewrite_module modules/mod_rewrite.so (Apache2是這個)去掉前面的#
2、AllowOverride None 將None改為 All
在httpd.conf配置文件找到“AllowOverride None”將None改為 All。這點值得注意的是,“AllowOverride None”在文件中能找到幾處,但要改的卻只有一處,如圖所示:
在本地學習實踐,不管是安裝集成服務器環境如wampserver或者獨立安裝(Apache+php+mysql分別下載安裝)都可以按照上面的步驟操作。
如果您的網站放到虛擬服務器上,您對網站內容所在的服務器沒有管理員權限,或者您的網站內容放在ISP的服務器上托管,無法改寫主配置文件httpd.conf,怎么辦呢?一般來說主配置文件httpd.conf已經開啟了mod_rewrite.so模塊,您要做的就是在您的網站空間找到httpd.conf文件(不是主配置文件,里面的配置只對您的網站起作用),并把“AllowOverride All”寫到其中.
新聞熱點
疑難解答
圖片精選