防止子域重定向到rootdomain

时间:2017-06-20 22:02:21

标签: wordpress apache .htaccess redirect mod-rewrite

我创建了一个新的子域名(sub.domain.com),但它仍然会重定向到rootdomainname(domain.com)。所以我无法编辑我的网站或登录(Wordpress)。

我首先假设插件WP快速缓存是问题所在:

# BEGIN WpFastestCache
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} =on
RewriteCond %{HTTP_HOST} ^example.com
# Start WPFC Exclude
# End WPFC Exclude
RewriteCond %{HTTP_HOST} ^example.com
RewriteCond %{HTTP_USER_AGENT} !(facebookexternalhit|WhatsApp|Mediatoolkitbot)
RewriteCond %{REQUEST_METHOD} !POST
RewriteCond %{REQUEST_URI} !(\/){2}$
RewriteCond %{REQUEST_URI} \/$
RewriteCond %{QUERY_STRING} !.+
RewriteCond %{HTTP:Cookie} !comment_author_
RewriteCond %{HTTP:Cookie} !wp_woocommerce_session
RewriteCond %{HTTP:Cookie} !safirmobilswitcher=mobil
RewriteCond %{HTTP:Profile} !^[a-z0-9\"]+ [NC]
RewriteCond %{DOCUMENT_ROOT}/wp-content/cache/all/$1/index.html -f [or]
RewriteCond /home/username/domains/example.com/public_html/wp-content/cache/all/$1/index.html -f
RewriteRule ^(.*) "/wp-content/cache/all/$1/index.html" [L]
</IfModule>
<FilesMatch "index\.(html|htm)$">
AddDefaultCharset UTF-8
<ifModule mod_headers.c>
FileETag None
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Mon, 29 Oct 1923 20:30:00 GMT"
</ifModule>
</FilesMatch>
# END WpFastestCache
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

所以我暂时停用了插件,将htaccess文件更改回基本文件(看插件是否有问题):

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

但它仍然会重定向到根域名。

我试图在.htaccess文件中添加以下代码但没有成功我是.htaccess文件的初学者所以我可能以错误的方式将它添加到文件中:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^example.co [NC]
RewriteRule ^(.*)$ https://example.co/$1 [L,R=301,QSA]

RewriteCond %{HTTP_HOST} ^(.*)\.example\.co [NC]
RewriteRule ^(.*)/?$ http://example.co/%1/$1 [P]
ProxyPassReverse / http://example.co/
</IfModule>
# END WordPress

我可以做什么,以便子域不会重定向到根域,而只是重定向到子域本身?

我也安装了简单的ssl插件,但我已尝试使用此插件(停用插件并使用此消息中的最后一个代码)。

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

每次更改内容时清空浏览器缓存。重定向 已缓存。

如果你只在你的.htaccess文件中保留基本wordpress逻辑,它不应该重定向到基本域,除非这是你在wordpress配置中定义的域。

如果是这种情况,您需要在数据库中手动编辑配置,或者只是从根域访问wordpress界面(如果它有效)。

答案 1 :(得分:0)

感谢您的回应!

我已将.htacces设置回:

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

wp配置中没有添加重定向。

因为我无法登录此子域(因为它只重定向到根域),所以数据库仍为空。我上传了Wordpress文件,wp-config和htaccess但由于这种重定向我还无法访问和安装Wordpress,因此还没有数据库信息。