我有两个文件夹:
/forum/admin
/forum/adminhide
我想在论坛文件夹中有一个.htaccess文件,它会在内部重写/ admin上的index.php以及/ adminhide。
示例:
http://website.com/forum/admin/index.php -> don't do anything
http://website.com/forum/admin/image.png -> internal rewrite to http://website.com/forum/adminhide/image.png
到目前为止,我所有的尝试都只产生了服务器内部错误。
答案 0 :(得分:1)
这可能有效(在根级.htaccess文件中):
RewriteRule ^forum/admin/index\.php$ - [S=1]
RewriteRule ^forum/admin/(.*) forum/adminhide/$1
不会重写与第一个规则匹配的任何URL(因为替换具有魔术值-
),并且[S=1]
标志会导致跳过下一个规则(执行实际重写)如果第一条规则匹配。
请注意,这非常按字面解释您的要求:以forum/admin/
开头的每个网址路径都会被重写,forum/admin/index.php
除外。您可能更愿意将第一条规则更改为更宽松的内容,例如:
RewriteRule ^forum/admin/(index\.php(/.*)?)?$ - [S=1]
这也会匹配(因此从重写中排除)网址路径forum/admin/
和forum/admin/index.php/whatever
。
修改:如果要将.htaccess文件放在forum
文件夹中,只需从规则中删除初始forum/
并设置RewriteBase
适当地改为:
RewriteBase /forum/
RewriteRule ^admin/index\.php$ - [S=1]
RewriteRule ^admin/(.*) adminhide/$1