【问题标题】:htaccess file not redirecting root level request to sub-directory levelhtaccess 文件未将根级别请求重定向到子目录级别
【发布时间】:2018-04-23 12:19:49
【问题描述】:

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

现在,当我点击 URL example.com 时,我的 .htaccess 文件工作正常,它从我的子目录 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/$1
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteRule ^(/)?$ my_subdir/index.php [L] 
</IfModule>

这里有什么遗漏的吗,请帮我指出。

【问题讨论】:

    标签: php wordpress .htaccess web-hosting


    【解决方案1】:

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

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

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

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

    基本上,最终解决方案取决于您想要达到的目标。

    【讨论】:

    • 我想在这里使用我的子目录,我也可以删除内容,但我不想冒险从tehre中删除一些重要的东西。如果我删除安装在 root 上的 wordpress 站点,它只会删除 wordpress 相关内容或其他文件和文件夹
    猜你喜欢
    • 2013-09-30
    • 2021-07-09
    • 1970-01-01
    • 2017-09-11
    • 2017-01-29
    • 2021-09-03
    • 2011-01-19
    • 1970-01-01
    相关资源
    最近更新 更多