我有一个只有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
(根索引,而不是子目录)。
所以我不认为这是一个非常难的问题,但我无法找到我犯错误的地方。
答案 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
。