我有一个带永久链接结构的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
答案 0 :(得分:0)
好吧,似乎是WordPress中的缓存插件正在创建移动重定向的问题。