Apache .htaccess从子目录重写到根目录

Apache .htaccess从子目录重写到根目录,apache,http,.htaccess,url,mod-rewrite,Apache,Http,.htaccess,Url,Mod Rewrite,我在修改规则时遇到了一些困难。 我想重写任何关于 www.example.com/dev/* 到 例如,当请求url是www.example.com/dev/index.php时,响应应该是www.example.com/dev/index.php,不仅url看起来像是来自根目录,而且实际上使用的是来自根目录的index.php 我试过mod_别名,它很管用 RedirectMatch (^/dev/)(.*) http://www.example.com/$2 但是不可能使用mod_别名应

我在修改规则时遇到了一些困难。 我想重写任何关于

www.example.com/dev/*

例如,当请求url是
www.example.com/dev/index.php
时,响应应该是
www.example.com/dev/index.php
,不仅url看起来像是来自根目录,而且实际上使用的是来自根目录的
index.php

我试过mod_别名,它很管用

RedirectMatch (^/dev/)(.*) http://www.example.com/$2
但是不可能使用mod_别名应用ip地址条件,所以我仍然需要一个使用mod_rewrite的解决方案


请大家分享一些知识好吗?谢谢。

像这样的怎么样

RewriteRule ^dev/(.*)$ $1
这需要位于根文件夹中,或者应用于主要Apache配置(不在.htaccess中)


有关.htaccess重定向的常规规则适用-其中包括
上重写引擎、
链接后的选项
、以及
允许覆盖文件信息
。详细信息请访问。

不,运气不好。我想知道这是否与用于阻止访问某些类型文件的其他规则有关。因此,我将这个新规则放在
RewriteBase/
正下方的第一行,但仍然不起作用。@vicch尝试添加一个
[L]
标志,即将规则更改为
RewriteRule^dev/(.*)$$1[L]
,这样它就不会处理其他规则rules@vicch-您需要简化配置以解决此问题。删除所有其他规则并仅测试此项,然后开始重新添加其他规则,直到找到干扰此项的内容。好的,问题已解决。是dev文件夹中的.htaccess阻止了它的工作。所以我只是为了重定向而禁用了它。谢谢,ziesemer和Ulrich。但奇怪的是,浏览器中显示的url是dev/index.php,而使用的文件实际上是根文件夹中的index.php。
RewriteRule ^dev/(.*)$ $1