如何实现网站的伪静态,分别说一下nginx和apache的实现方式

如何实现网站的伪静态,分别说一下nginx和apache的实现方式,第1张

Nginx下设置静态方法与Apache差不多,直接在nginx.conf (或者在对应的*.conf) 中找到需设置伪静态规则的服务器对应字段,在server{ location/{ } }中添加以下代码:

server {

    listen 80 default_server

    server_name _

    location / {

         root /usr/share/nginx/html

         index index.html index.htm

         rewrite ^(.*)list-([0-9]+)-([0-9]+)\.html$ $1list.php?page=$2&id=$3

         }

}

添加后重启Nginx服务即可生效

apache

要使用httpd.conf文件来设置伪静态策略,我们可以直接在httpd.conf中写入如下代码,如果您的网站是配置在VirtualHost中,则将这段代码加到对应的<VirtualHost hostname>

<VirtualHost>

标签内:

<IfModule mod_rewrite.c>

#输入: list-123-456.html 

#输出: list.php?page=123&id=456 

RewriteEngine on

RewriteRule ^(.*)list-([0-9]+)-([0-9]+)\.html$ $1list.php?page=$1&id=$2

</IfModule>

添加完成后重启httpd服务后即可生效

下面我详细说说它的使用方法!对初学者很有用的哦!1.检测Apache是否支持mod_rewrite通过php提供的phpinfo()函数查看环境配置,通过Ctrl+F查找到“Loaded Modules”,其中列出了所有apache2handler已经开启的模块,如果里面包括“mod_rewrite”,则已经支持,不再需要继续设置。如 果没有开启“mod_rewrite”,则打开目录 您的apache安装目录“/apache/conf/” 下的 httpd.conf 文件,通过Ctrl+F查找到“LoadModule rewrite_module”,将前面的”#”号删除即可。如果没有查找到,则到“LoadModule” 区域,在最后一行加入“LoadModule rewrite_module modules/mod_rewrite.so”(必选独占一行),然后重启apache服务器即可。2.让apache服务器支持.htaccess如 何让自己的本地APACHE服务器支持”.htaccess”呢?其实只要简单修改一下apache的httpd.conf设置就可以让 APACHE支 持.htaccess了。打开httpd.conf文件(在那里? APACHE目录的CONF目录里面),用文本编辑器打开后,查找Options FollowSymLinksAllowOverride None改为Options FollowSymLinksAllowOverride All就可以了。3.建立.htaccess 文件(1)用记事本 打开,点击文件–另存为,在文件名窗口输入”.htaccess”,注意是整个绿色部分,也就是包含英文引号,然后点击保存就行了。(2)进入cmd命令 窗口,通过cd切换当刚建立htaccess.txt文件的文件夹,然后输入命令:rename htaccess.txt .htaccess ,然后点击键盘Enter键即可。(3)通过ftp连接htaccess.txt所在文件夹,通过ftp软件重命名。北京恒博教育网站建设培训4.rewrite规则学习我们新建一个.htaccess文件之后,就在里面写入以下内容:RewriteEngine on #rewriteengine为重写引擎开关on为开启off为关闭RewriteRule ([0-9]{1,})$index.php?id=$1我讲解一下RewriteRule:RewriteRule是重写规则,支持正则表达式的,上面的([0-9]{1,})是指由数字组成的,$是结束标志,说明是以数字结束!好吧,现在我们可以实现伪静态页面了,写下一下的规则:<IfModule mod_rewrite.cRewriteEngine onRewriteRule ([a-zA-Z]{1,})-([0-9]{1,}).html$index.php?action=$1&id=$2</IfModule([a-zA-Z]{1,})-([0-9]{1,}).html$是规则,index.php?action=$1&id=$2是要替换的格式,$1代表第一个括号匹配的值,$2代表第二个,如此类推!!我们写一个处理的PHP脚本:index.phpPHP代码<?phpecho ‘你的Action是:’ . $_GET['action']echo ‘/’echo ‘你的ID是:’ . $_GET['id']?好了,我们现在在浏览器中输入:localhost/view-12.html输出的是:你的Action是:view

步骤十分简单:

安装好Apache好以后,打开配置文件httpd.conf,找到“LoadModule rewrite_module modules/mod_rewrite.so”,去掉前面的#符号,即表示支持伪静态了。

搜索配置文件的“None”,全部代替为“All”

注意事项:编辑配置文件不要使用Windows自带的记事本,以免出错。

最后一步就是在Wordpress后台设置伪静态了,以谭海波博客为例,设置>固定链接

请看上面红色标记的部分,就是对文章页进行伪静态设置,谭海波博客设置的规则是:“/%year%/%monthnum%/%postname%.html”,百分号是针对系统参数的固定格式,例如年月日(%year%/%monthnum%/%day%),分类(%category%),作者(%author%),当然用户自定义的不需要左右两个百分号的格式,例如“/post/”,最后的%postname%是指用户自定义的字段,例如本文章自定义的是wp-apahce-rewrite,当然,用户也可以设置文章的ID作为最后的字段。

比如,谭海波博客现在要设置另外一个规则:http://tanhaibo.net/a/internet/678.html,那么说明是互联网分类,文章ID为678了。在标红的文本框填入“/a/%category%/post_id.html”即可。

值得注意的是,下面还有备选设置,例如自定义分类和标签的字段,如果用户觉得category太长,可以自定义为“c”,当然,标签也可以自定义为“t”,不过有的时候我们为了缩减url的深度,可以直接放弃使用category,而是域名后面直接跟分类名称,例如谭海波博客的互联网频道,本来是一个分类目录。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11681087.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存