htaccess根据单词的字符重写规则目录

Htaccess rewrite rule directory based on caracters of a word

如何根据request_url重写更深的目录结构??例如:

%{REQUEST_URI} = /request_url.html

并重写以匹配文件夹 /r/e/q/request_url.html

中的文件

一些帮助???

您可以使用 mod_rewrite:

在根 .htaccess 文件的顶部执行类似以下操作
RewriteEngine On

RewriteRule ^request_url\.html$ r/e/q/[=10=] [L]

[=13=] 反向引用包含与 RewriteRule 模式 匹配的整个 URL 路径(节省重复)。


UPDATE: this is not for only one URL need the regex to match the 3 first characters for deeper directory

好的,假设您只为文档根匹配 .html URLs(即单路径段)- 所有 .html URLs 在文件根。那么您可以改为执行以下操作:

RewriteRule ^(.)([^/])([^/])[^/]*\.html$ ///[=11=] [L]

其中 </code>、<code></code> 是对请求的 URL 路径的第 1、2 和 3 个字符的反向引用。 IE。 <code>RewriteRule pattern(正则表达式)中的第一个、第二个和第三个带括号的子模式(捕获组)。

以上匹配 /request_url.html 并在内部重写为 /r/e/q/request_url.html。但它将无法匹配 /foo/request_url.html,因为它不在文档根目录中。