如何重写URL:
http://example.com/file_name
至:
http://example.com/depictions/file_name.html
例如:http://example.com/application至http://example.com/depictions/application.html
http://example.com/application
http://example.com/depictions/application.html
avkwfej41#
如果我们假设file_name不能包含 * dot *(这会立即排除对通常包含文件扩展名的真实的文件的任何请求--扩展名由 dot 分隔),那么在优化方面会更容易一些。然后,您可以使用mod_rewrite执行如下操作:
file_name
RewriteEngine On RewriteCond %{DOCUMENT_ROOT}/depictions/$0.html -f RewriteRule ^[\w-]+$ depictions/$0.html [L]
这实际上将file_name限制为字符0-9、a-z、A-Z、_(下划线)和-(连字符),如正则表达式字符类[\w-]所示。因此,这只检查对文档根目录中“files”的请求(即,不允许斜线)。这也会在发出内部重写之前测试Map的目的.html档案是否存在。$0反向引用包含与RewriteRule * 模式 * 匹配的完整URL路径。
0-9
a-z
A-Z
_
-
[\w-]
.html
$0
RewriteRule
v64noz0r2#
对于每个file_name:
RewriteEngine On RewriteRule ^(.+) depictions/$1.html [L]
2条答案
按热度按时间avkwfej41#
如果我们假设
file_name
不能包含 * dot *(这会立即排除对通常包含文件扩展名的真实的文件的任何请求--扩展名由 dot 分隔),那么在优化方面会更容易一些。然后,您可以使用mod_rewrite执行如下操作:这实际上将
file_name
限制为字符0-9
、a-z
、A-Z
、_
(下划线)和-
(连字符),如正则表达式字符类[\w-]
所示。因此,这只检查对文档根目录中“files”的请求(即,不允许斜线)。这也会在发出内部重写之前测试Map的目的
.html
档案是否存在。$0
反向引用包含与RewriteRule
* 模式 * 匹配的完整URL路径。v64noz0r2#
对于每个
file_name
: