分类 PHP 下的文章

Apache Rewrite 排除某个子目录

在做一个网站的时候,使用了apache Rewrite对URL进行重写,但意外发现了一个问题:Ueditor的一些插件,后缀是.html,本不该被重写,结果导致功能异常。虽然有可能可以通过编写更精确的Rewrite规则来避免这个问题,但直接排除后台管理目录的重写显然更容易实现。所以,找到导致插件重写错误的 RewriteRule,在上面添加 RewriteCond,如下:

RewriteEngine on
RewriteCond %{QUERY_STRING} ^(.*)$
#省略...
#下面这条给紧接着的RewriteRule筛选条件,类似if的功能
RewriteCond %{REQUEST_URI} !^/(admin|admin/.*)$
#下面这条导致了上面描述的问题
RewriteRule ^(.*)/([a-z0-9]{1,}).html$ $1/index.php?act=$2
#省略...

如此,所有 admin 子目录的访问都不会被重写。

discuz 模板标签

条件判断

<!-{if expr1}->
    statement1
<!-{elseif expr2}->
    statement2
<!-{else}->
    statement3
<!-{/if}->

这是一个典型的条件模板,当条件 expr1 为真时,显示模板 statement1 内容,否则当 expr2 为真时,显示模板 statement2 内容,否则显示模板 statement3 的内容。如同其他语言中的条件控制一样,其中 <!-{elseif expr}-> 和 <!-{else} -> 是非必须的。

- 阅读剩余部分 -