.htaccess:Wordpress永久链接代码会干扰重定向到网站的移动版本

时间:2015-03-25 13:36:22

标签: wordpress .htaccess redirect permalinks

我有一个带永久链接结构的WordPress网站,这意味着WordPress会为.htaccess文件添加重写代码。

问题在于,当我为移动用户添加重定向到移动版本的网站时,.htacess文件中的WordPress永久链接代码会受到某种干扰。

例如,当我进行Google移动友好测试时,它表示无法访问该网站(桌面版和移动版)。

当我删除.htaccess中的WordPress代码并且只留下移动重定向代码时,移动友好测试工作正常,但当然所有永久链接都停止在桌面网站上工作并给出404。 / p>

如何阻止移动重定向干扰.htaccess中的WordPress代码?

这是我正在使用的完整.htaccess:

<IfModule mod_rewrite.c>
    RewriteEngine on

    RewriteBase /

    # prevent looping
    RewriteCond %{HTTP_HOST} !^m\.website\.com

    # Check if mobile=1 is set and set cookie 'mobile' equal to 1
    RewriteCond %{QUERY_STRING} (^|&)mobile=1(&|$)
    RewriteRule ^ - [CO=mobile:1:%{HTTP_HOST}]

    # Check if mobile=0 is set and set cookie 'mobile' equal to 0
    RewriteCond %{QUERY_STRING} (^|&)mobile=0(&|$)
    RewriteRule ^ - [CO=mobile:0:%{HTTP_HOST}]

    # cookie can't be set and read in the same request so check
    RewriteCond %{QUERY_STRING} (^|&)mobile=0(&|$)
    RewriteRule ^ - [S=1]

    # Check if this looks like a mobile device
    RewriteCond %{HTTP:x-wap-profile} !^$ [OR]
    RewriteCond %{HTTP_USER_AGENT} "android|blackberry|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC,OR]
    RewriteCond %{HTTP:Profile} !^$

    # Check if we're not already on the mobile site
    RewriteCond %{HTTP_HOST} !^m\.
    # Check to make sure we haven't set the cookie before
    RewriteCond %{HTTP:Cookie} !\mobile=0(;|$)
    # Now redirect to the mobile site
    RewriteRule ^(.*)$ http://m.website.com/$1 [R=301,L]
    </IfModule>

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

    # END WordPress

1 个答案:

答案 0 :(得分:0)

好吧,似乎是WordPress中的缓存插件正在创建移动重定向的问题。