RewriteRule
是 Apache 服务器中的一个指令,用于重写 URL。它允许你根据特定的条件修改请求的 URL,从而实现 URL 的美化、重定向等功能。
RewriteRule
可以应用于多种场景,包括但不限于:
RewriteCond
指令设置条件,仅当条件满足时应用 RewriteRule
。example.com/post/123
重写为 example.com/posts?id=123
,使 URL 更加简洁。example.com/product/abc
重写为 example.com/index.php?product=abc
,隐藏实际文件路径。example.com/api/v1/data
重写为 example.com/api.php?v=1&data=true
,统一 API 接口格式。若你希望仅当 URL 中存在特定字符串时才应用 RewriteRule
,可以使用 RewriteCond
指令来设置条件。以下是一个示例:
RewriteEngine On
# 设置条件:仅当 URL 中包含 'special' 字符串时应用以下规则
RewriteCond %{REQUEST_URI} special
# 重写规则:将包含 'special' 的 URL 重写为目标 URL
RewriteRule ^(.*)$ /new-path/$1 [R=301,L]
在这个示例中:
RewriteEngine On
启用重写引擎。RewriteCond %{REQUEST_URI} special
设置条件,仅当请求的 URI 中包含 special
字符串时,后续的 RewriteRule
才会生效。RewriteRule ^(.*)$ /new-path/$1 [R=301,L]
是实际的重写规则,将符合条件的 URL 重写到新的路径,并使用 301
状态码进行永久重定向。通过这种方式,你可以灵活地控制 RewriteRule
的应用范围,确保它仅在满足特定条件时生效。
领取专属 10元无门槛券
手把手带您无忧上云