尝试通过.htaccess将子域重定向到Apache服务器上的根域,但需要将子域主页重定向到其他位置。例如:
blog.example.com --> example.com/blog/
blog.example.com/post-title --> example.com/post-title
目前我有这个:
RewriteEngine On
RewriteRule ^/?$ http://example.com/blog/ [R=301,L]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
我觉得应该有用,但我收到的“重定向太多”错误。
为了让事情变得更加尴尬,我需要手动重定向到新位置的一些迷路页面,例如:
blog.example.com/incorrect-category-name-1 --> example.com/correct-category-name-1
blog.example.com/incorrect-category-name-2 --> example.com/correct-category-name-2
这一切都可以在1 .htaccess文件中使用吗?
答案 0 :(得分:0)
在.htaccess
的根目录中的blog.example.com
文件中尝试以下操作:
RewriteEngine On
# If the HTTP_HOST is not blog.example.com then finish
# - Avoid a redirect loop
RewriteCond %{HTTP_HOST} !=blog.example.com [NC]
RewriteRule ^ - [L]
# Specific redirects...
RewriteRule ^$ http://example.com/blog/ [R=302,L]
RewriteRule ^incorrect-category-name-1$ http://example.com/correct-category-name-1 [R=302,L]
RewriteRule ^incorrect-category-name-2$ http://example.com/correct-category-name-2 [R=302,L]
# Catch all redirect
RewriteRule (.*) http://example.com/$1 [R=302,L]
当您感到满意时,将302(临时)重定向更改为301(永久)重定向。浏览器会捕获永久重定向,因此可以使测试变得棘手。确保首先清除了浏览器缓存。