一.Apache设置
独立主机用户
Apache 基本配置:
首先确定您使用的 Apache 版本,及是否加载了 mod_Rewrite 模块。
Apache 1.x 的用户请检查 conf/httpd.conf 中是否存在如下两段代码:
LoadModule Rewrite_module libexec/mod_Rewrite.so
AddModule mod_Rewrite.c
Apache 2.x 的用户请检查 conf/httpd.conf 中是否存在如下一段代码:
LoadModule Rewrite_module modules/mod_Rewrite.so
如果没有安装 mod_Rewrite,您可以重新编译 Apache,并在原有 configure 的内容中加入 –enable-Rewrite=shared
注:如果前面有#,将其去掉。
方法一:通过配置Apache配置文件httpd.conf实现URL重写
在配置文件(通常就是 conf/httpd.conf)中加入如下代码。
<IfModule mod_Rewrite.c>
RewriteEngine On
RewriteRule ^(.*)/archiver/((fid|tid)-[\w\-]+\.html)$ $1/archiver/index.php?$2
RewriteRule ^(.*)/forum-([0-9]+)-([0-9]+)\.html$ $1/forumdisplay.php?fid=$2&page=$3
RewriteRule ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/viewthread.php?tid=$2&extra=page\%3D$4&page=$3
RewriteRule ^(.*)/space-(username|uid)-(.+)\.html$ $1/space.php?$2=$3
RewriteRule ^(.*)/tag-(.+)\.html$ $1/tag.php?name=$2
</IfModule>
注:此时请务必注意,如果网站使用通过虚拟主机来定义,请务必加到虚拟主机配置,即 <VirtualHost> 中去,如果加在虚拟主机配置外部将可能无法使用,改好后将 Apache 重启。
方法二:通过在根目录中的跨越配置文件.htaccess实现URL重写
1. 配置apache支持对 .htaccess 文件的解析
查找:
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
修改为:
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
man对AllowOverride 的解释:
AllowOverride controls what directives may be placed in .htaccess files.
It can be “All”, “None”, or any combination of the keywords:
Options FileInfo AuthConfig Limit
就是说,将None改为All,.htaccess文件才能被支持!
1. 创建.htaccess文件Win32 系统下,无法直接建立 .htaccess 文件,您可以从其他系统中拷贝一份,或者在 Discuz.net 技术支持栏目中下载此文件。
2. 编辑.htaccess文件
# 将 RewriteEngine 模式打开
RewriteEngine On
# 指向 php 文件所在目录如果php文件与 .htaccess 在同一目录则为 RewriteBase /
RewriteBase /
# Rewrite 规则
RewriteRule ^archiver/((fid|tid)-[\w\-]+\.html)$ archiver/index.php?$1
RewriteRule ^forum-([0-9]+)-([0-9]+)\.html$ forumdisplay.php?fid=$1&page=$2
RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ viewthread.php?tid=$1&extra=page\%3D$3&page=$2
RewriteRule ^space-(username|uid)-(.+)\.html$ space.php?$1=$2
RewriteRule ^tag-(.+)\.html$ tag.php?name=$1
租用空间用户
1. 首先咨询您的空间服务商,空间是否支持 Rewrite 以及是否支持对站点目录中 .htaccess 的文件解析,否则即便按照下面的方法设置好了,也无法使用。
2. 创建.htaccess文件Win32 系统下,无法直接建立 .htaccess 文件,您可以从其他系统中拷贝一份,或者在 Discuz.net 技术支持栏目中下载此文件。
3. 编辑.htaccess文件
# 将 RewriteEngine 模式打开
RewriteEngine On
# 指向 php 文件所在目录如果php文件与 .htaccess 在同一目录则为 RewriteBase /
RewriteBase /
# Rewrite 规则
RewriteRule ^archiver/((fid|tid)-[\w\-]+\.html)$ archiver/index.php?$1
RewriteRule ^forum-([0-9]+)-([0-9]+)\.html$ forumdisplay.php?fid=$1&page=$2
RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ viewthread.php?tid=$1&extra=page\%3D$3&page=$2
RewriteRule ^space-(username|uid)-(.+)\.html$ space.php?$1=$2
RewriteRule ^tag-(.+)\.html$ tag.php?name=$1
二.Rewrite 规则
上面无论是在apache中设置的:
<IfModule mod_Rewrite.c>
RewriteEngine On
RewriteRule ^(.*)/archiver/((fid|tid)-[\w\-]+\.html)$ $1/archiver/index.php?$2
RewriteRule ^(.*)/forum-([0-9]+)-([0-9]+)\.html$ $1/forumdisplay.php?fid=$2&page=$3
RewriteRule ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/viewthread.php?tid=$2&extra=page\%3D$4&page=$3
RewriteRule ^(.*)/space-(username|uid)-(.+)\.html$ $1/space.php?$2=$3
RewriteRule ^(.*)/tag-(.+)\.html$ $1/tag.php?name=$2
</IfModule>
还在是文件.htaccess中添加的:
# 将 RewriteEngine 模式打开
RewriteEngine On
# 指向 php 文件所在目录如果php文件与 .htaccess 在同一目录则为 RewriteBase /
RewriteBase /
# Rewrite 规则
RewriteRule ^archiver/((fid|tid)-[\w\-]+\.html)$ archiver/index.php?$1
RewriteRule ^forum-([0-9]+)-([0-9]+)\.html$ forumdisplay.php?fid=$1&page=$2
RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ viewthread.php?tid=$1&extra=page\%3D$3&page=$2
RewriteRule ^space-(username|uid)-(.+)\.html$ space.php?$1=$2
RewriteRule ^tag-(.+)\.html$ tag.php?name=$1
其中都指明了URL重写规则。
请看:RewriteRule ^forum-([0-9]+)-([0-9]+)\.html$ forumdisplay.php?fid=$1&page=$2
这句说明了URL为forumdisplay.php?fid=$1&page=$2可以写成forum-([0-9]+)-([0-9]+)\.html这种模式。
如:访问http://localhost/ forumdisplay.php?fid=1&page=2与访问http://localhost/ forum-1-2.html的效果是一样的!
注:这些规则是可以自己写正则表达式随意更改的。根据自己需要的格式。来定制URL重写规则。
分享到:
相关推荐
描 述:UrlReWrite(Url重写或伪静态)完美示例源码 UrlReWrite(Url重写或伪静态)完美示例源码,已利用ActionlessForm解决原始地址form回传的问题 例如:/products.aspx?category=books 转换为/products/Books....
实现URL重写和伪静态的方法多种多样,其中Apache服务器通常使用.htaccess文件进行配置,通过定义RewriteRule和RewriteCond规则来实现URL的转换。IIS服务器则使用web.config文件进行设置。例如,在Apache的.htaccess...
apache,R,P,url重写,伪静态,反向代理
首先,让我们了解什么是URL重写和伪静态。URL重写是一种技术,它允许你改变URL的结构,而实际资源的位置不变。这在隐藏复杂查询字符串、创建用户友好的短链接或改善SEO方面非常有用。伪静态则是将动态生成的网页以...
ISAPI_Rewrite,ISAPI_Rewrite用来实现伪静态,将动态网页通过重写URL的方法实现去掉动态网页的参数!它的行为是像Apache的mod_Rewrite ,但专为微软的Internet信息服务( IIS )。 IIS配置相当简单,配置好之后就有...
UrlRewrite是一个强大的URL管理工具,它主要用于将复杂的URL转换为简单、易记且友好的形式,这个过程被称为URL重写或伪静态处理。在Web开发中,URL重写技术对于提升用户体验、优化搜索引擎排名(SEO)以及维护网站...
伪静态URL重写技术是一种常见的Web开发技巧,主要用于优化网站的搜索引擎优化(SEO)和提高用户体验。这种技术将动态的、包含参数的URL转换为看似静态的、更友好的URL形式,使得用户和搜索引擎更容易理解和处理。在...
标题 "urlrewrite重写URL伪静态请求路径" 涉及到的是Web开发中的一个重要概念——URL重写,这是为了优化网站的SEO(搜索引擎优化)和用户体验而进行的一种技术手段。URL重写允许我们将复杂的动态URL转换为简洁、易于...
### Apache中使非伪静态URL...通过上述解析,我们不仅了解了如何在Apache中通过`.htaccess`文件实现非伪静态URL到伪静态URL的跳转,还学习了一些相关的概念和技术细节。希望这些内容能帮助到正在面临类似问题的朋友们。
Apache服务器是世界上最流行的开源Web服务器,它提供了许多强大的功能,包括虚拟目录和伪静态处理。在网站部署和管理中,这两个特性尤其重要,能够帮助我们实现灵活的网站组织和优化用户体验。 **Apache虚拟目录** ...
这个"UrlReWrite(Url重写或伪静态)完美示例源码"包含了实现这些功能的具体代码,对于开发者来说是一份宝贵的参考资料。通过阅读和分析源码,我们可以: - 学习如何配置和编写URL重写规则。 - 了解内部实现逻辑,包括...
这两种服务器在处理URL重写和伪静态规则方面有所不同,Apache通常使用的是.htaccess文件,而IIS则使用其内置的URL重写模块。本篇文章将详细讲解如何让IIS支持Apache的.htaccess伪静态规则。 首先,了解什么是伪静态...
总结起来,伪静态(URL重写)是通过Java Filter或其他工具在服务器端实现的一种技术,它能够将动态URL转换为静态形式,提升用户体验,增强搜索引擎的可读性。在Java环境中,我们可以利用`Filter`接口或开源库如`...
本压缩包文件"Url重写文件(伪静态).zip"很可能包含了一个实现URL重写的配置文件,如`.htaccess`(针对Apache服务器)或`web.config`(针对IIS服务器)。 1. **什么是URL重写**: URL重写是通过服务器端的规则...
**四、整合应用:在IIS上实现二级域名的伪静态和URL重写** 1. 首先,在IIS服务器上配置好主站点,确保动态内容正常运行。 2. 在域名控制面板中,设置泛解析,将`*`指向主站点的IP地址。 3. 安装并配置IIS的URL ...
在Web开发中,伪静态配置是一种常见的优化手段,它通过将动态页面URL重写为静态页面URL的形式,不仅提升了用户体验,还对搜索引擎优化(SEO)有着显著的好处。本文将深入探讨Apache服务器下伪静态配置的具体实施步骤...
例如,在Apache的`.htaccess`文件中,我们可以设置如下规则将动态URL重写为伪静态形式: ```apacheconf RewriteEngine On RewriteRule ^product/([^/]+)/?$ /product.php?id=$1 [L] ``` 这个规则将`/product....