ThinkPHP 中实现 Rewrite 模式
2015-06-03 14:15
656 查看
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文件,此文件和入口文件同级,里面写入下面的内容:
如果你的服务器支持rewrite,现在就可以通过http://localhost/app/Index/index/访问Index模块下面的index操作。
解决方法一
需要通过命令,或者自己重新创建个软连接才可以。
命令是: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的也给改了才可以。
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的也给改了才可以。
相关文章推荐
- thinkphp3.2定义多模块并设置默认模块
- 正好最近使用到了,记录PHP错误日志
- PHP LDAP连接微软活动目录进行身份验证
- php面向对象(OOP)—实例化对象
- TP 上传图片 (可上传多图)
- Laravel中创建Model
- TP分页 (3.1) — 其中,获取当页页需要在类库中加取方法
- php面向对象(OOP)—定义类
- Laravel常用的小知识
- Laravel访问网站页面空白
- Laravel访问出错错误信息:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or dire
- php 类自动载入的方法
- [Erlang]erlang与php的通信
- SFTP无法连接 Connection closed by server with exitcode 127
- symfony更新entity时自动设置时间字段
- php面向对象(OOP)—类、对象、成员
- 小功率MTTP太阳能充电器(一)
- PHP分页类
- php集成套件服务器xampp安装使用教程(适合第一次玩PHP的新手)
- php 中英文字符串截取,字符串长度