【发布时间】:2020-09-14 16:10:39
【问题描述】:
当我设置我的 WP 网站时,我没有将它直接安装到 public_html 中,而是将它安装在 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>
然后,我想将www.example.com 重定向到www.example.com/dev,所以我从 Cpanel 添加了一个 301 重定向。上面的 htaccess 在 Cpanel 中创建了一个重定向规则,它与我的新重定向冲突,所以我删除了第一个,我的 htaccess 最终为:
<IfModule mod_rewrite.c>
RewriteEngine on
</IfModule>
RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^/?$ "https\:\/\/www\.example\.com\/dev\/" [R=301,L]
它有效,如果我转到 www.example.com,它会将我带到 www.example.com/dev,但如果我转到 www.example.com/services,它会将我带到错误 404 页面。
我怎样才能让它去任何 example.com 页面将我带到 example.com/dev 中的等价物,例如 example.com/services = example.com/dev/services
【问题讨论】:
-
您是否在同一个帐户上托管多个域?
-
不,我实际上已经找到了解决方案,所以我回复了自己让其他人看到。我还对我正在做的事情做了一个广泛的解释:)
-
如果您没有托管多个域,那么所有检查请求的
Host标头的条件都是多余的。