Apache重写(URL Rewriting)是一种通过修改HTTP请求的URL来改变其指向的资源的技术。这种技术通常用于优化网站结构、实现SEO友好的URL、隐藏真实路径等场景。
Apache重写主要通过mod_rewrite
模块来实现,它允许你定义一系列的规则来匹配和修改URL。这些规则通常写在.htaccess
文件或Apache配置文件中。
假设我们有一个网站,希望将所有请求重写到/subfolder/
目录下,但如果URL中包含/special/
段,则不进行重写。
例如:
http://example.com/page
http://example.com/subfolder/page
http://example.com/special/page
http://example.com/special/page
(不重写)在.htaccess
文件中添加以下规则:
RewriteEngine On
# 如果请求的URL不包含 /special/,则重写到 /subfolder/
RewriteCond %{REQUEST_URI} !^/special/
RewriteRule ^(.*)$ /subfolder/$1 [L]
RewriteEngine On
:开启重写引擎。RewriteCond %{REQUEST_URI} !^/special/
:如果请求的URL不以/special/
开头,则满足条件。RewriteRule ^(.*)$ /subfolder/$1 [L]
:将匹配到的URL重写到/subfolder/
目录下,并停止处理后续的重写规则([L]
表示Last)。通过以上配置,可以实现将大部分URL重写到子文件夹,同时保留特定段不被重写的需求。
领取专属 10元无门槛券
手把手带您无忧上云