Apache Rewrite - 允许 php 文件类型

Apache Rewrite - 允许 php 文件类型
RewriteRule ^([^/]*)/([^/]*)$ /index.php?id=$1&n=$2 [L]

  此规则将website.com/4/name写入

/index.php?id=4&n=名称

我如何添加/更改规则以停止website.com/blog/login.php重写调用?

 

回答

根据 Shane 的评论,并仔细查看正则表达式:

RewriteRule ^([^/]*)/([^/]*)$ /index.php?id=$1&n=$2 [L]

1 第一个表达式

^([^/]*)

^   = start string
( ) = group
[ ] = match
^   = not "/"
*   = 0 or more of the preceding

2 斜线 /

3 重复上一个表达式 ([^/]*)

4 结束字符串 $

因此,为了防止 /blog/ 重写:在第一个表达式中匹配小写字母 [az]

最终规则

RewriteRule ^([^/a-z]*)/([^/]*)$ /index.php?id=$1&n=$2 [L]

答案1

在当前规则之前添加一条规则,以防止重写您想要保留的文件。

RewriteRule ^blog/.*\.php$ - [L]
RewriteRule ^([^/]*)/([^/]*)$ /index.php?id=$1&n=$2 [L]

相关内容