.htaccess - .htaccess 将根文件夹重写为子文件夹
问题描述
请问我可以帮助将 URL 重定向到子文件夹,以便将其中的所有https://example.com
内容重写为https://example.co.uk/subfolder
吗?
该.htaccess
文件需要在/subfolder
.
解决方案
您可以在根.htaccess
文件中执行以下操作以将所有直接请求重写到子文件夹。
RewriteEngine On
# Rewrite all direct requests to the `/subfolder` directory
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^ subfolder%{REQUEST_URI} [L]
对REDIRECT_STATUS
环境变量的检查确保只有来自客户端的直接请求(与内部重写的请求相反)被重写到/subfolder
目录(从而避免了重写循环)。
这也意味着对/subfolder
自身的直接请求也将被重写到/subfolder
目录(即。/subfolder/subfolder
) - 因此,如果您愿意,您可以拥有一个同名的子文件夹(否则直接请求/subfolder
将导致 404)。也就是说,除非您.htaccess
在子文件夹中有一个附加文件也包含 mod_rewrite 指令,在这种情况下,这些指令将被覆盖。
更新:在您的问题更新之后,现在说明以下...
该
.htaccess
文件需要在/subfolder
.
在这种情况下,这是不可能的。.htaccess
重写请求的文件/subfolder
必须在文档根目录(父目录)中。
如果该.htaccess
文件在其/subfolder
自身中,那么它将永远不会针对该子文件夹之外的请求进行处理以重写请求。
推荐阅读
- medium.com - 检查新的 medium.com 帖子的最快端点是什么?
- laravel - 如何在orWhere查询中查询多个whereMonth for laravel
- swift - facebook登录跳转到另一个页面
- c++builder - 全局声明 TBitmap
- android-recyclerview - 如何使用 Image 或 ImageSlider 滚动 recyclerview
- python - 如何定义涉及 for 循环的迭代函数,其中迭代器 i,j,l.. 也用于定义的迭代函数
- ios - 备份自制IOS应用
- php - 使用不带 $_POST 的 url 中的值检索数据库记录
- notepad++ - 如何在记事本++中自动复制标记的文本
- python-3.x - 如何指定 unittest.mock.sentinel 的类型?