-
-8 28
-
给一个客户在用ss7.5做垃圾站的模板,因为url需要静态化,设置rewrite必须要服务器支持,但是很多服务器都支持.htaccess文件的,所以自己设置下就ok了,首先说下htaccess文件是什么?
概述来说,htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页 301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。Unix、Linux系统或者是任何版本的Apache Web服务器都是支持.htaccess的,但是有的主机服务商可能不允许你自定义自己的.htaccess文件。国内的大多数虚拟主机就没有这个功能。我所知道的提供这个功能的有康盛世纪(就是Discuz的论坛服务商)。
启用.htaccess,需要修改httpd.conf,启用AllowOverride,并可以用AllowOverride限制特定命令的使用。如果需要使用.htaccess以外的其他文件名,可以用AccessFileName指令来改变。例如,需要使用.config ,则可以在服务器配置文件中按以下方法配置:AccessFileName .config 。
笼统地说,.htaccess可以帮我们实现包括:文件夹密码保护、用户自动重定向、自定义错误页面、改变你的文件扩展名、封禁特定IP地址的用户、只允许特定IP地址的用户、禁止目录列表,以及使用其他文件作为index文件等一些功能。
工作原理
.htaccess文件(或者"分布式配置文件")提供了针对每个目录改变配置的方法,即在一个特定的目录中放置一个包含指令的文件,其中的指令作用于此目录及其所有子目录。
说明:
如果需要使用.htaccess以外的其他文件名,可以用AccessFileName指令来改变。例如,需要使用.config ,则可以在服务器配置文件中按以下方法配置:
AccessFileName .config
通常,.htaccess文件使用的配置语法和主配置文件一样。AllowOverride指令按类别决定了.htaccess文件中哪些指令才是有效的。如果一个指令允许在.htaccess中使用,那么在本手册的说明中,此指令会有一个覆盖项段,其中说明了为使此指令生效而必须在AllowOverride指令中设置的值。
例如,本手册对AddDefaultCharset指令的阐述表明此指令可以用于.htaccess文件中(见"作用域"项),而覆盖项一行是FileInfo ,那么为了使.htaccess中的此指令有效,则至少要设置 AllowOverride FileInfo 。
下面说说伪静态到底咋个设置:
将下面的规则存在.htaccess文件中,放在网站的根目录下。XML/HTML代码- <IfModule mod_rewrite.c>
- RewriteEngine On
- RewriteBase /
- RewriteCond %{REQUEST_FILENAME} !-f
- RewriteCond %{REQUEST_FILENAME} !-d
- #重写规则:
- RewriteRule ^([0-9]+)/spacelist(.+)$ index.php?uid/$1/action/spacelist/type$2 [L]
- RewriteRule ^([0-9]+)/viewspace(.+)$ index.php?uid/$1/action/viewspace/itemid$2 [L]
- RewriteRule ^([0-9]+)/viewbbs(.+)$ index.php?uid/$1/action/viewbbs/tid$2 [L]
- RewriteRule ^([0-9]+)/(.*)$ index.php?uid/$1/$2 [L]
- RewriteRule ^([0-9]+)$ index.php?uid/$1 [L]
- RewriteRule ^action(.+)$ index.php?action$1 [L]
- RewriteRule ^category(.+)$ index.php?action/category/catid$1 [L]
- RewriteRule ^viewnews(.+)$ index.php?action/viewnews/itemid$1 [L]
- RewriteRule ^viewthread(.+)$ index.php?action/viewthread/tid$1 [L]
- RewriteRule ^mygroup(.+)$ index.php?action/mygroup/gid$1 [L]
- </IfModule>
要实现实现网址伪静态的条件:Apache服务器,并且开启ReWrite功能模块。查看如何开启Apache的ReWrite。需要手动修改SupeSite的网址,可以支持以下几种格式,以详细页为例:http://www.sanywork.cn/viewnews-7511.htmlhttp://www.sanywork.cn/viewnews/7511.htmlhttp://www.sanywork.cn/viewnews/7511/http://www.sanywork.cn/viewnews/7511注意:使用伪静态实现网址静态化不需要在管理后台开启Html功能,但不能降低服务器的压力,如果网站的流量大还得在后台采用Html静态模式。
本文来源于php爱好者:php教程 —http://www.phplover.cn/
原文地址:http://www.phplover.cn/post/supesite-shezhi-rewriter.html
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
3楼 老好
Post:2010-8-30 11:29:11
2楼 爱好者博客
Post:2010-8-29 20:56:45
1楼 赵福安
Post:2010-8-29 10:06:31