ThinkPHP 中實現 Rewrite 模式

ThinkPHP 中默認的URL地址是形如這樣的:http://localhost/app/index.php/Index/index/

app是我的項目文件名,默認的訪問地址是上面這樣的。爲了使URL更加簡介友好,現在要去掉中間的index.php,Windows系統的方法如下:

1。在Apache下找到httpd.conf文件,確認httpd.conf配置文件中加載了mod_rewrite.so 模塊,加載的方法是去掉mod_rewrite.so前面的註釋#號

2。講httpd.conf中的Allowoverride  None 將None改爲All

3。打開對應的項目配置文件,我的項目配置文件是Myapp/Conf/config.php ,在這個配置文件數組中增加一行,‘URL_MODEL’=>2

4。在項目的根目錄下面建立一個.htaccess文件,此文件和入口文件同級,裏面寫入下面的內容:

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


如果你的服務器支持rewrite,現在就可以通過http://localhost/app/Index/index/訪問Index模塊下面的index操作。

ubuntu下面開啓apache的url_rewrite 

解決方法一
需要通過命令,或者自己重新創建個軟連接纔可以。
命令是:sudo a2enmod rewrite
軟連接是:sudo ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load 

因爲Ubuntu下,Apache的配置文件及目錄結構不大一樣,所以mods-avalilable下的是可用的模塊,而真正啓用了的模塊是在mods-enable目錄底下的。所以自己創建軟連接也可以實現啓用rewrite模塊。

除了啓用rewrite外,還有地方需要修改的,如果你的站點只有一個,那修改/etc/apache2/sites-available/default這個文件就可以

<Directory />
Options FollowSymLinks
AllowOverride None(修改爲AllowOverride All)
</Directory>
<Directory "/var/orioner">
Options Indexes FollowSymLinks MultiViews
AllowOverride None(修改爲AllowOverride All)
Order allow,deny
allow from all
</Directory>
其實網上其它地方貼出來的解決辦法是吧Options FollowSymlinks的給改了就行了。其實不行,還要把Options Indexes FollowSymLinks MultiViews的也給改了纔可以。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章