伪静态在IIS和Apache下的区别

合集下载

apache伪静态通用规则

apache伪静态通用规则

apache伪静态通用规则Apache伪静态通用规则指的是在使用Apache服务器时,通过.htaccess文件来实现URL的伪静态化。

通过将动态URL转化为静态URL的形式,可以提高网站的SEO友好度,增加引擎对网站的收录和排名。

下面是一些常用的Apache伪静态规则:1.删除文件扩展名RewriteRule ^([^\.]+)$ $1.php [NC,L]2.重写动态参数URLRewriteRule ^category/([0-9]+)/([0-9]+)/?$ category.php?cat_id=$1&page=$2 [NC,L]3.重写带有查询参数的URLRewriteRule ^blog/(\d+)/?$ blog.php?id=$1 [NC,L]4.重定向旧URL至新URLRewriteRule ^old-url$ /new-url [R=301,L]5.隐藏目录结构RewriteRule ^page/([a-zA-Z0-9_-]+)/?$ index.php?page=$1 [NC,L]6.添加尾部斜杠RewriteCond %{REQUEST_FILENAME} !-dRewriteRule ^(.*)/$ $1 [L,R=301]7.通过文件路径重定向RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule ^(.*)$ index.php?path=$1 [QSA,L]这些规则只是Apache伪静态规则的一部分,具体的使用取决于网站的具体需求和URL结构。

在使用这些规则之前,需要确保服务器已启用了RewriteEngine模块,并且.htaccess文件位于网站根目录下。

需要注意的是,使用Apache伪静态规则时需要谨慎,不当的规则设置可能导致URL冲突或死循环等问题。

在线生成伪静态规则

在线生成伪静态规则

在线生成伪静态规则伪静态是指将动态生成的页面URL模拟成静态链接显示在地址栏中的一种技术。

通过伪静态规则,可以让动态页面的URL看起来像静态页面的URL,更容易记忆和收录问题,提高SEO的效果。

伪静态规则的生成是网站技术人员必须掌握的重要技能之一,以下是常用的伪静态规则生成方式:1、基于Apache的伪静态规则生成Apache是目前最常用的Web服务器之一,提供了强大的伪静态规则生成功能。

基于Apache的伪静态规则可以通过.htaccess文件来实现。

.htaccess是Apache服务器中一个非常重要的配置文件,可以用来指定服务器的一些属性和规则。

.htaccess文件的主要内容包括重定向规则、密码保护、防止浏览器缓存和压缩、防止页面盗链等。

下面是一个Apache伪静态规则的示例:RewriteEngine onRewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule ^(.*)$ index.php?q=$1 [L,QSA]以上代码的含义是:打开Rewrite引擎,如果请求的文件不存在,且请求的目录不存在,则将请求的URL解析为index.php的参数q,然后将参数q传递给index.php,退出重写模式。

2、基于Nginx的伪静态规则生成Nginx是一个高性能的、面向并发的Web服务器,常用于高访问量的网站上。

Nginx的伪静态规则生成与Apache有所不同,需要在Nginx的配置文件中进行设置。

以下是一个Nginx伪静态规则的示例:location / {if (!-e $request_filename) {rewrite ^/(.*)$ /index.php?q=$1 last;}}以上代码的含义是:如果请求的文件不存在,则将请求的URL解析为index.php的参数q,然后将参数q传递给index.php,退出重写模式。

伪静态 rewrite规则

伪静态 rewrite规则

伪静态rewrite规则摘要:1.伪静态概念介绍2.伪静态rewrite 规则的作用3.伪静态rewrite 规则的编写方法4.伪静态rewrite 规则的实际应用5.伪静态rewrite 规则的优点与局限性正文:1.伪静态概念介绍伪静态(Pseudo Static)是一种在动态网页上实现静态页面效果的技术。

它允许在动态网页上使用静态页面的URL,从而提高网站的性能和用户体验。

伪静态技术通常用于PHP、Python 等编程语言,通过服务器端的代码实现动态内容与静态页面的结合。

2.伪静态rewrite 规则的作用伪静态rewrite 规则是实现伪静态技术的核心部分,它可以将动态网页的URL 重写为静态页面的格式。

这样,用户在访问网站时,浏览器会直接请求静态页面,而不是经过服务器的动态渲染。

这种技术可以有效地提高网站的访问速度,减轻服务器负担,同时方便搜索引擎的收录。

3.伪静态rewrite 规则的编写方法伪静态rewrite 规则通常通过服务器端的代码实现,以PHP 为例,可以使用PHP 的内置函数「rewrite」来实现。

以下是一个简单的伪静态rewrite规则示例:```php<?php// 判断是否为伪静态请求if (isset($_SERVER["HTTP_X_Rewrite_Url"])) {// 提取URL 中的参数$url_params = parse_str($_SERVER["HTTP_X_Rewrite_Url"], "/");// 根据参数构建动态SQL$sql = "SELECT * FROM content WHERE id=".$url_params["id"];// 执行SQL 获取动态内容$content = mysqli_query($sql);// 将动态内容输出到页面while ($row = mysqli_fetch_array($content)) {echo "【".$row["title"]."】".$row["content"]."<br>";}} else {// 输出静态页面内容echo "欢迎来到伪静态示例网站!";}>```4.伪静态rewrite 规则的实际应用在实际应用中,伪静态rewrite 规则可以根据网站的需求和结构进行灵活调整。

phpstudy伪静态规则

phpstudy伪静态规则

phpstudy伪静态规则PHPStudy是一款PHP开发环境软件,在使用PHPStudy的过程中,可能会遇到需要配置伪静态规则的情况。

伪静态,是一种URL重写技术,将动态的URL转换为静态的URL,更加利于搜索引擎的收录和优化。

在PHPStudy中配置伪静态规则,一般需要进行以下几个步骤:1. 开启Apache的Rewrite模块。

在PHPStudy的软件中,点击“选项”-“Apache设置”-“Apache 模块”,勾选“rewrite_module”,并保存更改。

2. 编写.htaccess文件。

.htaccess文件是放置在需要进行伪静态规则配置的网站根目录下的一个文件,可以通过文本编辑器进行编写。

以下是一个示例的.htaccess文件:<IfModule mod_rewrite.c>RewriteEngine OnRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]</IfModule>上述代码中,RewriteRule是规则的核心部分,其中包含3个参数:- ^(.*)$:表示所有URL匹配规则。

- index.php:转换后的静态URL。

- [QSA,PT,L]:3个括号中的参数分别表示将原有的参数追加到新的URL中、强制保留URL大小写和禁止任何后续规则执行。

3. 重启Apache服务器。

在完成以上两个步骤后,需要重启Apache服务器使新的配置生效。

总的来说,在PHPStudy中配置伪静态规则并不麻烦,但需要注意的是,不同的网站可能需要不同的伪静态规则配置,需要根据具体情况进行设置。

webconfig伪静态规则

webconfig伪静态规则

webconfig伪静态规则在网站开发中,为了提高网站的用户体验和搜索引擎优化(SEO),伪静态规则是一个常用的技术手段。

而在中,web.config 文件是用来配置网站的重要文件之一。

本文将介绍web.config文件中的伪静态规则的使用方法和注意事项。

什么是伪静态规则呢?简单来说,伪静态规则是一种将动态页面的URL转化为静态页面URL的技术。

通过伪静态规则,我们可以将动态页面的URL转化为带有扩展名的静态页面URL,从而提高网站的可读性和搜索引擎的收录率。

在web.config文件中,我们可以使用<rewrite>元素来配置伪静态规则。

下面是一个示例:```xml<system.webServer><rewrite><rules><rule name="Rewrite to static URL"><match url="^article/(\d+)$" /><action type="Rewrite" url="article.aspx?id={R:1}" /></rule></rules></rewrite></system.webServer>```在上面的示例中,我们定义了一个名为"Rewrite to static URL"的伪静态规则。

该规则的作用是将形如"article/123"的URL重写为"article.aspx?id=123"的URL。

其中,"^article/(\d+)$"是一个正则表达式,用来匹配URL中的参数值,并通过"{R:1}"来引用匹配到的参数值。

除了上述示例中的URL重写规则,我们还可以根据具体需求配置其他的伪静态规则。

最详细的织梦Dedecms伪静态方法(含伪静态规则) .

最详细的织梦Dedecms伪静态方法(含伪静态规则) .

1)你的网站空间是否支持伪静态?这点很重要,不然一切都是白搭。

你可以与空间的IDC商联系一下,如果是自己的服务器,那就更好办了,一般来说,空间都是支持伪静态的。

Apache服务器伪静态相对简单,直接在.htaccess文件中加入相应伪静态规则即可;而IIS服务器伪静态的实现,则需要加载Rewrite 组件,然后配置httpd.ini文件。

2)开启DedeCms伪静态a.后台-系统参数-核心设置-是否使用伪静态:选择“是”;b.如果你启用了问答模块,则后台-系统参数-模块设置-是否使用伪静态:选择“是”;c.创建栏目或批量增加栏目时,栏目列表选项:选择“使用动态页”;添加新文章时,发布选项:选择“仅动态浏览”。

当然,你也可以更改他们的模板,让他们默认就是这两个值,一劳永逸。

修改方法很简单,稍懂些HTML基础就行了,这里就不再累述了。

d.如果你的网站已经存在生成的静态栏目或文章HTML,那么只需在后台-系统-SQL命令行工具中执行如下语句:updatedede_arctype set isdefault=-1;updatedede_archives set ismake=-1;其中,dede是你安装时的数据表前缀,根据实际情况替换。

事实上,开启DedeCms伪静态支持并不能完全在后台配置,有很多地方还是需要手动修改的,期望官方完善。

织梦DedeCms伪静态方法织梦DedeCms伪静态,涉及到PHP源码的修改,你可以借助Dreamweaver或是EditPlus一类编辑软件来操作。

下面说下织梦DedeCms全站伪静态的实现方法,适用于V5.3以上版本。

小拼的DedeCms伪静态测试环境是Windows IIS6,举一反三,Linux或其它服务器的伪静态实现原理都是一样的,只要搞清楚思路就行了。

1)DedeCms首页伪静态把站点根目录下index.html删除,以后不更新主页HTML即可,当然你也可以选择不使用动态首页。

伪静态规则代码

伪静态规则代码

伪静态规则代码一、什么是伪静态规则代码在网站开发中,伪静态是指通过对URL进行重写,使其看起来像是静态页面的一种技术。

伪静态规则代码是指用来实现伪静态的一段代码或配置。

传统动态网页的URL通常包含参数,例如:。

而使用伪静态后,URL会变得更加友好和美观,例如:。

通过使用伪静态规则代码,可以提升网站的用户体验和搜索引擎优化效果。

二、为什么使用伪静态规则代码1. 改善用户体验动态网址通常包含大量参数和特殊字符,不易记忆和分享。

而采用伪静态后,URL会变得简洁、有意义且易于理解。

这有助于提高用户对网站内容的识别度和理解度。

2. 提升搜索引擎优化效果搜索引擎更喜欢处理静态页面而非动态页面。

通过使用伪静态规则代码,可以将动态生成的页面转换为看起来像是静态页面的形式呈现给搜索引擎爬虫。

这有助于提高网站在搜索引擎结果页面中的排名。

3. 方便URL的管理和维护动态网址通常包含大量参数,不方便管理和维护。

而使用伪静态后,URL会变得简洁明了,易于管理和维护。

三、如何编写伪静态规则代码1. 选择合适的伪静态规则代码方式在编写伪静态规则代码之前,需要先选择合适的方式来实现伪静态。

常见的方式包括:•Apache服务器下使用.htaccess文件•Nginx服务器下使用rewrite模块•IIS服务器下使用URL Rewrite模块根据所使用的服务器类型和具体需求,选择相应的方式进行配置。

2. 编写伪静态规则代码示例(以Apache服务器为例)a. 创建.htaccess文件首先,在网站根目录下创建一个名为.htaccess的文件。

b. 启用.htaccess确保Apache服务器已开启.htaccess功能。

在主配置文件或虚拟主机配置中添加以下内容:<Directory "/path/to/your/website">AllowOverride All</Directory>c. 编写伪静态规则代码在.htaccess文件中添加以下示例代码:RewriteEngine OnRewriteBase /# 将 /article.php?id=1 重写为 /article/1.htmlRewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule ^article/([0-9]+)\.html$ article.php?id=$1 [L]在上述示例代码中,RewriteEngine On表示启用URL重写功能,RewriteBase /表示基础重写路径。

IIS与apache的区别

IIS与apache的区别

结论——IIS6以前的版本有安全隐患,IIS6和APACHE一样安全可靠。IIS6与APACHE打个平手。
五、开放性:
所谓开放性就是指是否开放了程序的源代码,众所周知IIS是WINDOWS系统的一部分,所以他的源代码是没有开放的。而apache则不同,最早他是为了类unix系统服务的,所以完全对外开放源代码。任何人都可以分析他的代码,发现其中的漏洞,并发布补丁来弥补该漏洞。
APACHE是个多面手,他不仅仅应用于windows,对于unix,linux以及freebsd等多种操作系统来说他都可以胜任工作。而且不同操作系统的配置步骤基本类似,可移植性非常高。
结论——IIS只能在windows下运行,apache应用范围广。apache获胜。
四、安全性:
经常看到某某网站被黑客攻击或者某某网站被非法用户上传病毒的消息,对于为其他人提供服务的站点来说,安全性是最重要的。如果一个网站连自身安全都没有保证的话,谁愿意浏览和使用呢。
结论——APACHE支持语言比较多,IIS支持PHP和JSP时有点麻烦,需要经过一定的配置。APACHE获胜。
九、待遇方面:
提到待遇方面可能很多读者会比较纳闷,怎么IIS和APACHE还存在待遇问题呢?其实我们这里要讨论的是网络管理员的待遇。一个会IIS的网络管理员与一个会APACHE的网络管理员,他们的薪水是不一样的。
总的来说Apache的优点在于在各种开源的WWW服务提供工具中特性最全,支持最广,相对比较稳定的,而且扩展性丰富。不过正因为要考虑扩展性,性能就肯定不会太高,只能保持一个中等的水平。而IIS6在处理连接及事件性能方面还是很强大的,超过了APACHE。另外安全方面IIS6也有了质的飞跃,弥补了以往IIS漏洞漫天的缺陷。如果你的公司网络环境不负责,没有涉及太多的开发的话建议仍然使用IIS6。当然如果是建立在WWW上的开发和调试还是使用APACHE更加顺手。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

htaccess在IIS和Apache下的区别^t_(\d+).html$ t.php?id=$1这个在apache下面可以,但在iis下的isapi_rewrite里可能就不对了要改成 ^(.*)/t_(\d+).html$ $1/t.php\?id=$2加了/,和对?进行了转义Apache下RewriteRule ^company/show_([0-9]+).html$ company.php?uid=$1 [L] //正确,可以不转义. ? RewriteRule ^company/show_([0-9]+)\.html$ company.php\?uid=$1 [L] //正确RewriteRule ^/company/show_([0-9]+)\.html$ /company.php\?uid=$1 [L] //错误加了/就不行了IIS下RewriteRule ^(.*)/resume/([0-9]+)/show\.html$ /$1/person.php?pid=$2 [L] // 正确RewriteRule ^(.*)/resume/([0-9]+)/show.html$ /$1/person.php?pid=$2 [L] //错误,.?必须转义RewriteRule /resume/([0-9]+)/show\.html$ /person.php\?pid=$1 [L] // 正确RewriteRule resume/([0-9]+)/show\.html$ person.php\?pid=$1 [L] // 错误,必须加/RewriteRule /resume/([0-9]+)/show\.html$ /person.php?pid=$1 [L] // 错误,?必须转义总结 iis下必须加 /,.?必须转义apache下不能加/附上htaccess的标记说明flags‘redirect|R [=code]‘ (强制重定向 redirect)以http://thishost[:thisport]/(使新的URL成为一个URI) 为前缀的Substitution可以强制性执行一个外部重定向。

如果code没有指定,则产生一个HTTP响应代码302(临时性移动)。

如果需要使用在300-400范围内的其他响应代码,只需在此指定这个数值即可,另外,还可以使用下列符号名称之一: temp (默认的), permanent, seeother. 用它可以把规范化的URL反馈给客户端,如, 重写“/~”为“/u/”,或对/u/user加上斜杠,等等。

注意: 在使用这个标记时,必须确保该替换字段是一个有效的URL! 否则,它会指向一个无效的位置! 并且要记住,此标记本身只是对URL加上 http://thishost[:thisport]/的前缀,重写操作仍然会继续。

通常,你会希望停止重写操作而立即重定向,则还需要使用’L’标记.‘forbidden|F’ (强制URL为被禁止的 forbidden)强制当前URL为被禁止的,即,立即反馈一个HTTP响应代码403(被禁止的)。

使用这个标记,可以链接若干RewriteConds以有条件地阻塞某些URL。

‘gone|G’ (强制URL为已废弃的 gone)强制当前URL为已废弃的,即,立即反馈一个HTTP响应代码410(已废弃的)。

使用这个标记,可以标明页面已经被废弃而不存在了.‘proxy|P’ (强制为代理 proxy)此标记使替换成分被内部地强制为代理请求,并立即(即,重写规则处理立即中断)把处理移交给代理模块。

你必须确保此替换串是一个有效的(比如常见的以 http://hostname开头的)能够为Apache代理模块所处理的URI。

使用这个标记,可以把某些远程成分映射到本地服务器名称空间,从而增强了ProxyPass指令的功能。

注意: 要使用这个功能,代理模块必须编译在Apache服务器中。

如果你不能确定,可以检查“httpd -l”的输出中是否有mod_proxy.c。

如果有,则mod_rewrite可以使用这个功能;如果没有,则必须启用mod_proxy并重新编译“httpd”程序。

‘last|L’ (最后一个规则 last)立即停止重写操作,并不再应用其他重写规则。

它对应于Perl中的last命令或C语言中的break命令。

这个标记可以阻止当前已被重写的URL为其后继的规则所重写。

举例,使用它可以重写根路径的URL(’/’)为实际存在的URL, 比如, ‘/e/www/’.‘next|N’ (重新执行 next round)重新执行重写操作(从第一个规则重新开始). 这时再次进行处理的URL已经不是原始的URL了,而是经最后一个重写规则处理的URL。

它对应于Perl中的next命令或C语言中的continue命令。

此标记可以重新开始重写操作,即, 立即回到循环的头部。

但是要小心,不要制造死循环!‘chain|C’ (与下一个规则相链接 chained)此标记使当前规则与下一个(其本身又可以与其后继规则相链接的,并可以如此反复的)规则相链接。

它产生这样一个效果: 如果一个规则被匹配,通常会继续处理其后继规则,即,这个标记不起作用;如果规则不能被匹配,则其后继的链接的规则会被忽略。

比如,在执行一个外部重定向时,对一个目录级规则集,你可能需要删除“.www” (此处不应该出现“.www”的)。

‘type|T=MIME-type’ (强制MIME类型 type)强制目标文件的MIME类型为MIME-type。

比如,它可以用于模拟mod_alias中的ScriptAlias指令,以内部地强制被映射目录中的所有文件的MIME类型为“application/x-httpd-cgi”.‘nosubreq|NS’ (仅用于不对内部子请求进行处理 no internal sub-request)在当前请求是一个内部子请求时,此标记强制重写引擎跳过该重写规则。

比如,在mod_include试图搜索可能的目录默认文件(index.xxx)时, Apache会内部地产生子请求。

对子请求,它不一定有用的,而且如果整个规则集都起作用,它甚至可能会引发错误。

所以,可以用这个标记来排除某些规则。

根据你的需要遵循以下原则: 如果你使用了有CGI脚本的URL前缀,以强制它们由CGI脚本处理,而对子请求处理的出错率(或者开销)很高,在这种情况下,可以使用这个标记。

‘nocase|NC’ (忽略大小写 no case)它使Pattern忽略大小写,即, 在Pattern与当前URL匹配时,’A-Z’ 和’a-z’没有区别。

‘qsappend|QSA’ (追加请求串 query string append)此标记强制重写引擎在已有的替换串中追加一个请求串,而不是简单的替换。

如果需要通过重写规则在请求串中增加信息,就可以使用这个标记。

‘noescape|NE’ (在输出中不对URI作转义 no URI escaping)此标记阻止mod_rewrite对重写结果应用常规的URI转义规则。

一般情况下,特殊字符(如’%’, ‘$’, ‘;’等)会被转义为等值的十六进制编码。

此标记可以阻止这样的转义,以允许百分号等符号出现在输出中,如: RewriteRule /foo/(.*) /bar?arg=P1\%3d$1 [R,NE]可以使’/foo/zed’转向到一个安全的请求’/bar?arg=P1=zed’.‘passthrough|PT’ (移交给下一个处理器 pass through)此标记强制重写引擎将内部结构request_rec中的uri字段设置为 filename字段的值,它只是一个小修改,使之能对来自其他URI到文件名翻译器的 Alias,ScriptAlias, Redirect 等指令的输出进行后续处理。

举一个能说明其含义的例子:如果要通过mod_rewrite的重写引擎重写/abc为/def,然后通过mod_alias使/def转变为/ghi,可以这样: RewriteRule ^/abc(.*) /def$1 [PT]Alias /def /ghi如果省略了PT标记,虽然mod_rewrite运作正常,即, 作为一个使用API的URI到文件名翻译器,它可以重写uri=/abc/…为filename=/def/…,但是,后续的mod_alias在试图作URI到文件名的翻译时,则会失效。

注意: 如果需要混合使用不同的包含URI到文件名翻译器的模块时,就必须使用这个标记。

混合使用mod_alias和mod_rewrite就是个典型的例子。

For Apache hackers如果当前Apache API除了URI到文件名hook之外,还有一个文件名到文件名的hook,就不需要这个标记了! 但是,如果没有这样一个hook,则此标记是唯一的解决方案。

Apache Group讨论过这个问题,并在Apache 2.0 版本中会增加这样一个hook。

’skip|S=num’ (跳过后继的规则 skip)此标记强制重写引擎跳过当前匹配规则后继的num个规则。

它可以实现一个伪if-then-else的构造: 最后一个规则是then从句,而被跳过的skip=N个规则是else从句. (它和’chain|C’标记是不同的!)‘env|E=VAR:VAL’ (设置环境变量 environment variable)此标记使环境变量VAR的值为VAL, VAL可以包含可扩展的反向引用的正则表达式$N和%N。

此标记可以多次使用以设置多个变量。

这些变量可以在其后许多情况下被间接引用,但通常是在XSSI (via or CGI (如$ENV{’VAR’})中,也可以在后继的RewriteCond指令的pattern中通过%{ENV:VAR}作引用。

使用它可以从URL中剥离并记住一些信息。

‘cookie|CO=NAME:VAL:domain[:lifetime[:path]]’ (设置cookie)它在客户端浏览器上设置一个cookie。

cookie的名称是NAME,其值是VAL。

domain字段是该cookie的域,比如’’, 可选的lifetime是cookie生命期的分钟数,可选的path是cookie的路径。

相关文档
最新文档