如何使用htaccess将root请求转发到另一个目录?

时间:2017-09-07 23:23:56

标签: php wordpress apache .htaccess mod-rewrite

我有一个只有test index.php文件和.htaccess的根目录。您可以帮助将根请求(example.com)转发到子目录(example.com/wp/index.php)。我不需要任何重定向,因为它们会更改地址栏中的URL。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule $^ /wp/index.php [L]
</IfModule>

现在是根目录中的.htaccess文件。使用.htaccess,服务器只返回/index.php(根索引,而不是子目录)。

所以我不认为这是一个非常难的问题,但我无法找到我犯错误的地方。

1 个答案:

答案 0 :(得分:1)

RewriteRule $^ /wp/index.php [L]

你有正则表达式的锚点(字符串$的结尾和字符串^的开头)错误的方式。但是,如果您设置了DirectoryIndex,也可能会遇到问题(mod_dir会触发/index.php的内部子请求,因此URL路径不一定是空的。)

请尝试以下内容:

RewriteEngine On
RewriteRule ^(index\.php)?$ /wp/index.php [L]

RewriteRule 模式 ^(index\.php)?$匹配空的URL路径或index.php(mod_dir子请求的结果)。

不需要<IfModule>容器,此处未使用RewriteBase