投稿 评论 顶部

phpstudy伪静态设置

佚名 网络安全

? ?phpstudy是win系统下面一个php环境一体包,可以通过这个工具轻松实现搭建php等网站。作为动态网站,采用php等页面暴露到公网依然存在一定安全隐患,一般可通过伪静态来隐藏真实地址。

phpstudy伪静态设置

开启伪静态设置

  1. 1

    首先检查apache是否支持,开启伪静态。打开phpstudy控制面板,找到

    php扩展和设置--apache扩展

    phpstudy伪静态设置
  2. 2

    在apache扩展菜单里面,找到rewrite_module模块,把它启用。勾上

    也可以直接打开apache配置文件里面,“/apache/conf/” 下的 httpd.conf 文件,通过查找“LoadModule rewrite_module”,把前面的”#”号删除即可。

    phpstudy伪静态设置
  3. 3

    开启phpstudy伪静态支持

    然后依次找到面板,打开配置文件 httpd-conf

    phpstudy伪静态设置
  4. 4

    建议用文本编辑器编辑,查找AllowOverride?None,替换为 AllowOverride?All? (有多处设置,需要替换)然后保存

    phpstudy伪静态设置
    phpstudy伪静态设置
  5. 5

    修改之后,重启一下apache服务或者直接重启 phpstudy

    phpstudy伪静态设置
  6. 6

    测试伪静态

    然后写入Rewrite的伪静态规则,添加.htacces文件。测试伪静态实际上,就是“重定向”隐藏真实地址的一种方法

    RewriteEngine on

    RewriteRule ([a-zA-Z]{1,})-([0-9]{1,}).html$index.php?action=$1&id=$2

    phpstudy伪静态设置


    apache服务器开启rewrite后写法和规则详解

    本文主要和大家分享apache服务器开启rewrite后的写法和规则,希望能帮助到大家。

    首先,先说URL的重写规则怎么写。这个主要是用于做伪静态。重写规则是放在.htaccess文件下或Apache的配置文件(httpd.conf或sites_conf目录里的一些特定的网站配置文件),此文主要讨论.htacess文件(其实都差不多)。

    打开你的.htacess文件,开头内容如下:

    RewriteEngine?onRewriteBase?/


    RewriteEngine on是代表开启rewrite,而RewriteBase / 是表示所有规则前都存在“/”,写了这条之后,你后面所有规则的开头,只需要写“^”就后了,但要注意的是,此规则仅在.htacess文件中被支持,如果是服务器配置文件,此规则会被忽略、不必写。

    2

    在正是写规则前,先为大家讲一下重写中设计到的特殊字符的含义。


    *代表前面0或更多个字符


    +代表前面1或更多个字符


    ?代表前面0或1个字符


    ^代表字符串的开始位置


    $代表字符串结束的位置


    。为通配符,代表任何字符


    \将跟在其后的字符还原为字符本身,例如“\+”代表的就是“+”,而非其它意思。


    ^在方括号里表示非的意思。例如[^.]代表非通配符。


    那么假如我们希望将“http://www.AAA.com/b.php?id=1″此类URL伪静态为“http://www.AAA.com/b/1″的形式,则规则如下:

    RewriteRule?^b/([0-9]+)/?$/b.php?id=$1?[L]


    上面的例子中,^表示域名后来的URL的开始,$表示字符串结束,也就是域名后面的URL结束。[0-9]表示一个数字,因为只要URL存在,其必然存在一个id数字。紧接其后的+表示表示出现1个或多个数字。[0-9]+连在一起,表示字符以数字形式出现,数字范围为0-9,出现次数为1或多次。$表示字符串结束,?$表示在根域名后到域名结束,有0或1个字符。$1表示存在内存中的内容,也就是说第一个圆括号中的内容。[L]表示如果规则匹配就停止,否则需要继续运行剩下的规则,通常这个没必要深究。

    3

    那除非伪静态外,有时候我们还需要利用.htacess进行301重定向。符号含义不变,举例如下:


    RewriteEngine?onRewriteCond?%{HTTP_HOST}?^AAA\.com$?[NC]RewriteRule?^(.*)?http://www.AAA.com/$1?[R=301,L]


    上述规则是将AAA.com 301 到 www.AAA.com,符号的含义相信不必再做解释了。


    那么经过这两条规则,你应该有所启发了,如果你的网站做改版,导致你的URL结构发生了变化,怎么办?答案很简单,我们可以利用.htacess文件,通过写rewrite规则,将老的URL 301到新的URL上。

    RewriteRule?^(.*?)/?index\.html$/$1??[L,R=301]

    这个规则是将域名下搜有a/index.html 301 到 a/ 的URL下。规则是死的,最重要的是大家要活学活用,相信熟练掌握rewrite规则后,你会发现网站所有的URL与返回码将会全部在你的掌控下!

    以上就是apache服务器开启rewrite后的写法和规则的内容