【问题标题】:Prevent subdomain from redirecting to rootdomain防止子域重定向到根域
【发布时间】:2017-06-20 22:02:20
【问题描述】:

我创建了一个新的子域 (sub.domain.com),但它一直重定向到根域名 (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 插件,但我已经尝试过对这个插件进行相同的操作(停用插件并使用此消息中的最后一个代码)。

感谢您的帮助!

【问题讨论】:

    标签: wordpress apache .htaccess redirect mod-rewrite


    【解决方案1】:

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

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

    如果是这种情况,你需要手动编辑数据库中的配置,或者直接从根域访问wordpress界面,如果它是有效的。

    【讨论】:

      【解决方案2】:

      感谢您的回复!

      我已将 .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,因此还没有数据库信息。

      【讨论】:

        猜你喜欢
        • 2018-07-14
        • 1970-01-01
        • 2014-03-10
        • 1970-01-01
        • 2012-11-18
        • 1970-01-01
        • 1970-01-01
        • 2016-01-30
        • 1970-01-01
        相关资源
        最近更新 更多