标签归档:URL重写

thinkphp隐藏URL里面含有index.php

通常的URL里面含有index.php,为了达到更好的SEO效果可能需要去掉URL里面的index.php ,通过URL重写的方式可以达到这种效果,通常需要服务器开启URL_REWRITE模块才能支持。
下面是Apache的配置过程,可以参考下:
1、httpd.conf配置文件中加载了mod_rewrite.so模块
为了正常启用URL Rewrite,
请将apache配置文件中“LoadModule rewrite_module modules/mod_rewrite.so”前的注释去掉,

2、AllowOverride None 将None改为 All
并将apache的DocumentRoot开启AllowOverride

如下所示为apache下httpd.conf的代码片段:

3、确保URL_MODEL设置为2

4、把下面的内容保存为.htaccess文件放到入口文件的同级目录下

重启Apache之后,原来的
http://www.zzs.me/index.php/Blog/read/id/1
就可以通过访问
http://www.zzs.me/Blog/read/id/1
简化了URL地址。

thinkphp url重写开启

今天在thinkphp里的 url重写时 httpd.conf 里面的 mod_rewrite.so 模块已经开启 .htaccess 文件也已经放成根目录但是还是不能访问,不知道怎么回事。一查手册里面看到如下内容:其中有一条我没有做AllowOverride None 将None改为 All 之前也没有注意到这一块。

通常的URL里面含有index.php,为了达到更好的SEO效果可能需要去掉URL里面的index.php ,通过URL重写的方式可以达到这种效果,通常需要服务器开启URL_REWRITE模块才能支持。

下面是Apache的配置过程,可以参考下:

1、httpd.conf配置文件中加载了mod_rewrite.so模块

2、AllowOverride None 将None改为 All

3、确保URL_MODEL设置为2

4、把下面的内容保存为.htaccess文件放到入口文件的同级目录下

重启Apache之后,原来的

http://serverName/index.php/Blog/read/id/1

就可以通过访问

http://serverName/Blog/read/id/1

简化了URL地址。

于是度娘了一下看到:
******AllowOverride作用******

通常利用Apache的rewrite模块对 URL 进行重写的时候, rewrite规则会写在 .htaccess 文件里。但要使 apache 能够正常的读取.htaccess 文件的内容,就必须对.htaccess 所在目录进行配置。从安全性考虑,根目录的AllowOverride属性一般都配置成不允许任何Override ,即
< Directory />
AllowOverride None
< /Directory>

在 AllowOverride 设置为 None 时, .htaccess 文件将被完全忽略。当此指令设置为 All 时,所有具有 “.htaccess” 作用域的指令都允许出现在 .htaccess 文件中。

现在上面的四条都已经完成,url重写生效 ^_^

apache URL rewrite 实现

在电脑上装了一个thinkphp系统,发现不能访问,
路径tp/news 和tp/index.php/news都不能访问
查看config.php配置文件
url模式是 ‘URL_MODEL’=>2,重写模式

那需要开启apache的mod_rewrite模块
如果没有开启“mod_rewrite”,则打开目录 您的apache安装目录“/apache/conf/” 下的 httpd.conf 文件,通过Ctrl+F查找到“LoadModule rewrite_module”,将前面的”#”号删除即可。

如果没有查找到,则到“LoadModule” 区域,在最后一行加入“LoadModule rewrite_module modules/mod_rewrite.so”(必选独占一行),然后重启apache服务器即可。

在配置文件httpd.con中添加下面伪静态规则
RewriteEngine on
RewriteRule ^member/link_list.html?page=([0-9]+)$ index.php?mod=member&layout=link_list&page=$1 [R]

如果您不想在apache配置文件里面写入这个代码,可以在网站些网站根目录里面建一个 .htaccess文件
.htaccess文件里面写上

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

OK搞定.这下你就可以正常访问了 tp/news可以访问到新闻模块了