mod_rewrite 用于复杂的子域重定向
mod_rewrite for complex subdomain redirects
这些是我当前用于将子域 HTTP 请求重定向到具有路径的域的指令。
RewriteCond %{HTTP_HOST} ^blog.website.com
RewriteRule ^(.*)$ http://website.com/blog [L]
但是,此站点是已发布社交媒体链接的网站的新版本。这些链接有图像 URL,现在已损坏,因为 URL 现在指向不同的服务器。这些图像已被迁移,并且所述图像的路径已保留在新服务器上。鉴于此,我需要重写我的指令以说明这些遗留链接。
我需要写条件重写URL 只有当URL没有路径或者URL的第一个参数时 不是 /wp-content/
.
我必须制定区分这 3 种 URL 模式的条件和规则:
http://blog.website.com
-> http://website.com/blog
http://blog.website.com/wp-content/year/month/image.jpg
-> http://website.com/wp-content/year/month/image.jpg
http://blog.website.com/entry-url-title
-> http://website.com/blog/entry-url-title
这就是我最终能够做到的,当然还有我朋友的一点帮助。
RewriteCond %{HTTP_HOST} blog.website.com
RewriteCond %{REQUEST_URI} ^/?$
RewriteRule ^(.*) http://website.com/blog [R=301,L]
RewriteCond %{HTTP_HOST} ^blog.website.com
RewriteCond %{REQUEST_URI} !wp-content
RewriteRule ^(.*) http://website.com/blog/%{REQUEST_URI} [R=301,NC,L]
RewriteCond %{HTTP_HOST} ^blog.website.com
RewriteCond %{REQUEST_URI} wp-content
RewriteRule ^(.*) http://website.com/%{REQUEST_URI} [R=301,NC]
这些是我当前用于将子域 HTTP 请求重定向到具有路径的域的指令。
RewriteCond %{HTTP_HOST} ^blog.website.com
RewriteRule ^(.*)$ http://website.com/blog [L]
但是,此站点是已发布社交媒体链接的网站的新版本。这些链接有图像 URL,现在已损坏,因为 URL 现在指向不同的服务器。这些图像已被迁移,并且所述图像的路径已保留在新服务器上。鉴于此,我需要重写我的指令以说明这些遗留链接。
我需要写条件重写URL 只有当URL没有路径或者URL的第一个参数时 不是 /wp-content/
.
我必须制定区分这 3 种 URL 模式的条件和规则:
http://blog.website.com
-> http://website.com/blog
http://blog.website.com/wp-content/year/month/image.jpg
-> http://website.com/wp-content/year/month/image.jpg
http://blog.website.com/entry-url-title
-> http://website.com/blog/entry-url-title
这就是我最终能够做到的,当然还有我朋友的一点帮助。
RewriteCond %{HTTP_HOST} blog.website.com
RewriteCond %{REQUEST_URI} ^/?$
RewriteRule ^(.*) http://website.com/blog [R=301,L]
RewriteCond %{HTTP_HOST} ^blog.website.com
RewriteCond %{REQUEST_URI} !wp-content
RewriteRule ^(.*) http://website.com/blog/%{REQUEST_URI} [R=301,NC,L]
RewriteCond %{HTTP_HOST} ^blog.website.com
RewriteCond %{REQUEST_URI} wp-content
RewriteRule ^(.*) http://website.com/%{REQUEST_URI} [R=301,NC]