htaccess - 重写 url

发布于 2024-10-30 12:53:43 字数 253 浏览 0 评论 0原文

如何将 URL 重写

http://example.com/file_name

http://example.com/depictions/file_name.html

:例如:http://example.com/application 到http://example.com/depictions/application.html

How can I rewrite the URL:

http://example.com/file_name

to:

http://example.com/depictions/file_name.html

For example: http://example.com/application
to http://example.com/depictions/application.html

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

反差帅 2024-11-06 12:53:43

如果我们假设 file_name 不能包含(这会立即排除对通常包含文件扩展名的真实文件的任何请求 - 即由分隔)。然后,您可以使用 mod_rewrite 执行类似以下操作:

RewriteEngine On

RewriteCond %{DOCUMENT_ROOT}/depictions/$0.html -f
RewriteRule ^[\w-]+$ depictions/$0.html [L]

这实际上将 file_name 限制为字符 0-9azAZ_(下划线)和 -(连字符),由正则表达式字符类 [\w-] 表示。因此,这只检查对文档根目录中“文件”的请求(即不允许使用斜杠)。

这还会在发出内部重写之前测试相应的目标 .html 文件是否存在。

$0 反向引用包含与 RewriteRule 模式 匹配的整个 URL 路径。

It makes it a bit easier in terms of optimisation if we assume the file_name cannot contain dots (this immediately excludes any requests for real files that ordinarily include a file extension - which is delimited by dot). Then you can do something like the following using mod_rewrite:

RewriteEngine On

RewriteCond %{DOCUMENT_ROOT}/depictions/$0.html -f
RewriteRule ^[\w-]+$ depictions/$0.html [L]

This actually limits the file_name to the characters 0-9, a-z, A-Z, _ (underscore) and - (hyphen) as denoted by the regex character class [\w-]. Consequently, this only checks requests to "files" in the document root (ie. no slashes permitted).

This also tests that the corresponding target .html file exists before issuing the internal rewrite.

The $0 backreference contains the entire URL-path that is matched by the RewriteRule pattern.

情仇皆在手 2024-11-06 12:53:43

对于每个 file_name

RewriteEngine On
RewriteRule ^(.+) depictions/$1.html [L]

For every file_name:

RewriteEngine On
RewriteRule ^(.+) depictions/$1.html [L]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文