WINDOWS空间
如何同时使用两个伪静态?我的是PHPWIND论坛
我现在使用的如下:
[ISAPI_Rewrite]
# 本规则是PHPWIND
RewriteRule ^(.*)-htm-(.*)$ $1\.php\?$2
RewriteRule ^(.*)simple/([t|f].+).html$ /simple/index.php?$2.html [NC]
# Defend your computer from some worm attacks
RewriteRule .*(?:global.asa|default\.ida|root\.exe|\.\.).* . [F,I,O]
----------------------------
我想, 默认用新的伪静态地址(不是上面的) 但是上面的也可以访问
也就是说同时使用两个伪静态规则
这个规则怎么写?
提问要求里没有说明,具体要什么样的页面地址样式。
我就解析下这个RewriteRule的含义吧。
RewriteRule ^(.*)-htm-(.*)$ $1\.php\?$2
关键字, 传入的URL 实际被解析到的URL
^(.*)-htm-(.*)$
使用正则解析传入的URL是否匹配此规则,如果匹配,则会截取两个(.*)所占据的值。例如传入的URL是/abcd-html-username,那两个(.*)代表的就是abcd和username,解出的二个值,被填充到$1\.php\?$2
中,$1表示占位符,且将解出的第一个值(abcd)替换到这里,$2则是将第二个值(username)替换到这里。在编写规则时,只要把握这二个值的顺序前后对应即可。
示例
RewriteRule ^(.*)-htm-(.*)$ $1\.php\?$2
可以写成
RewriteRule ^(.*)-aspx-(.*)$ $1\.php\?$2
RewriteRule ^(.*)_\.jsp?aspx=(.*)$ $1\.php\?$2
传入的URL可以任意编写,但要注意二点,
1。改动URL规则,同时需要改动页面上的地址。否则变动后的规则不起作用了。
2。使用特定文件尾缀时,需要根据服务器情况,添加或删除己有的扩展映射。