繁体   English   中英

.htaccess 301将子域以及所有文件和文件夹重定向到根目录

[英].htaccess 301 redirect subdomain and all files and folders to root

为了解决这个问题,我整天头顶在墙上。 如果您知道该怎么做并可以提供帮助,将不胜感激。

我正在尝试将所有内容从www.example.com重定向到example.com的根域

以下方法可以按预期的方向重定向www.example.com,但对其他文件或文件夹的请求返回302。这是Wordpress Multisite安装,但此时仅映射了一个域。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# BEGIN WordPress
Options +FollowSymLinks 
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]

# END WordPress

# Link re-directs from old website.

RewriteCond %{HTTP_HOST} ^www.example.com/(.*)$ [NC]
RewriteRule ^/?(.*)$ http://example.com$1 [R=301,L]

# Other

php_value memory_limit 500M

有人可以帮忙吗? 谢谢,麻烦您了。

您需要所有路由规则(例如wordpress的东西) 之前添加重定向规则。 您还缺少一个斜杠你的目标和HTTP_HOST 包含任何路径信息,只是主机名。 所以这:

# Link re-directs from old website.

RewriteCond %{HTTP_HOST} ^www.example.com$ [NC]
RewriteRule ^/?(.*)$ http://example.com/$1 [R=301,L]

需要直接在htaccess文件顶部的RewriteEngine On下。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM