thinkphp url重写

来源:互联网 发布:手机闪光灯软件 编辑:程序博客网 时间:2024/05/16 05:33

可是,Action和Function前面还有index.php让人很不爽。按网上的方法先做一次,试试(在公司是成功了的)

cd /etc/apache2
vim simaopig-server.conf<VirtualHost "simaopig.360.cn">
ServerName   "simaopig.360.cn"
DocumentRoot "/home/simaopig/www"
<Directory "/home/simaopig/www">
AllowOverride All
Options None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

按要求将AllOverride改为All

顺便说一下,我这个环境是装Opensuse的时候默认安装的LAMP,用着还算舒服。不过默认是没有加rewrite.so的,稍候一篇文章我会讲一下我是怎么编译的。

现在继续,按照网上的教程现在我应该创建.htaccess文件来设定我的规则了。

郁闷无比的事情发生了,我设置完成后,连index.php都访问不了,403 FOOBIDDEN错误。。

找了好久也没有找到原因。。郁闷啊。。

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

htaccess_forbidden

我甚至有想换到WINDOWS下的愿望,主啊。。

后来,查看了一下APACLE的日志,发现这么一句话

Thu Apr 23 23:44:36 2009] [error] [client 127.0.0.1] Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden: /home/simaopig/www/thinkphp/index.php

于是,我又继续GOOGLE,居然这是一个常见错误,解决方法也很简单。那就是

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

在.htaccess文件上面加上 Option +FollowSymLinks解决问题。。

现在这个世界清静了。

我原本以为这个教程是我做起来最快的一个。因为在公司的时候(WINDOWS环境)一下就OK了。

哪想到,由于工作环境的问题会导致这么多问题。呵。学习了。。

对了,其中最重要的一步差点给落下,那就是要在config.php里面加上“’URL_MODEL’=>2,”这一项。

但是URL_MODEL都在哪定义的?呵。

// ThinkPHP\Common\defines.php 支持的URL模式
define('URL_COMMON',      0);   //普通模式
define('URL_PATHINFO',    1);   //PATHINFO模式
define('URL_REWRITE',     2);   //REWRITE模式
define('URL_COMPAT',        3);     // 兼容模式
原创粉丝点击