htaccess 文件未将根级别请求重定向到子目录级别

htaccess file not redirecting root level request to sub-directory level

我的 wordpress 网站的域名 example.com 安装在 public_html 的根目录上,最近我将我的网站内容迁移到子目录 public_html/my_subdir。从子目录加载内容 我修改了位于 public_html 根文件夹的 .htaccess 文件,以从我放置网站内容的子目录加载内容。

现在我的 .htaccess 文件在我点击 URL example.com 时工作正常,它从我的子目录 public_html/my_subdir 加载内容但是当我去example.com/wp-adminexample.com/contactus 或除根域以外的任何其他路径,然后它将从根目录本身而不是子目录 public_html/my_subdir 加载内容。

下面是我放在根级别的 .htaccess 文件,

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{REQUEST_URI} !^/my_subdir/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /my_subdir/
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteRule ^(/)?$ my_subdir/index.php [L] 
</IfModule>

这里有没有遗漏的地方,请大家帮我指出。

per instruction一样,所有内容都应该移动到子目录中,只在根目录中留下.htaccess。 既然你写了 it will load content from the root directory,我猜根目录中还有一些文件。 如果出现请求的文件或目录,这两个条件将取消重写:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

因此,我建议从根目录中删除内容。

否则,我想可以在根目录中创建简单的 .htaccess,它只会重定向到子目录,同时在子目录本身中添加标准 WordPress .htaccess

基本上,最终解决方案取决于您要实现的目标。