这是我们当前的.htaccess文件,其中包含我们需要保留的规则,但是我们还需要添加一个新规则,该规则将从根域重定向到子文件夹URL
exact->inexact
..
example.com -> example.com/fl/en.html
答案 0 :(得分:1)
如果您将指令放置在正确的位置,似乎没有什么特别需要的内容。要将文档根目录(用于example.com
重定向到/fl/en.html
中的.htaccess
可以这样做:
RewriteRule ^$ /fl/en.html [R,L]
这只需要放在之后指令,该指令为主机domain.co.nz
和之前的主机重写所有内容。 (您可以将其与重定向/home.html
,/info.html
等的现有指令结合使用)
您现有的规则可以进一步优化。与其在RewriteCond
指令中检查请求的URL路径并在RewriteRule
pattern 中允许一切通过,不如做一个事更有效您可以先使用RewriteRule
模式(因为这是首先处理的内容)。
此外,由于您使用的是WordPress,因此添加到.htaccess
的所有自定义指令都应位于# BEGIN WordPress
部分之外。 WordPress本身会维护此部分,因此您进行的任何手动自定义都可能在更新期间被覆盖。
此外,无需重复执行RewriteEngine
指令。 (此指令的 last 实例获胜并控制整个文件。)
因此,将所有这些放在一起,我们会得到类似的东西:
# Rewrite all requests for domain.co.nz to subfolder
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.co\.nz$
RewriteRule !^subfolder /subfolder%{REQUEST_URI} [L]
# Redirect document root to /fl/en.html
RewriteRule ^$ /fl/en.html [R,L]
# Redirect specific paths to /fl/en.html
RewriteRule ^(/home.html|/info.html|/flash|/external) /fl/en.html [R=301,L]
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
请注意,上述指令(带有单个R
)是临时(302)重定向。如果要永久保留,请将其更改为R=301
,但是只有在您测试它可以正常工作后才能避免(避免缓存问题)。
一如既往,请确保在测试之前已清除浏览器缓存。