apache - Htaccess根据单词的字符重写规则目录
问题描述
如何根据 request_url 重写到更深的目录结构?例如:
%{REQUEST_URI}
=/request_url.html
并重写以匹配文件夹中的文件/r/e/q/request_url.html
一些帮助???
解决方案
您可以.htaccess
使用 mod_rewrite 在根文件的顶部执行以下操作:
RewriteEngine On
RewriteRule ^request_url\.html$ r/e/q/$0 [L]
反向引用包含与模式匹配的$0
整个 URL 路径(保存重复)。RewriteRule
更新:这不仅仅是一个 URL 需要正则表达式来匹配更深目录的前 3 个字符
好的,假设您只匹配.html
文档根目录的 URL(即单个路径段) -.html
文档根目录中的所有 URL。然后,您可以改为执行以下操作:
RewriteRule ^(.)([^/])([^/])[^/]*\.html$ $1/$2/$3/$0 [L]
其中$1
和是对请求的 URL 路径的第一个、第二个和第三个字符的反向引用$2
。$3
IE。RewriteRule
模式(正则表达式)中的第一个、第二个和第三个带括号的子模式(捕获组)。
以上匹配/request_url.html
并在内部重写为/r/e/q/request_url.html
. 但它不会匹配/foo/request_url.html
,因为它不在文档根目录中。