我有一个问题。我需要我的网站只能从移动设备进入,如果他们从桌面网站进入,将其重定向到另一个页面,我所实现的是,
RewriteCond %{QUERY_STRING} !^android
RewriteCond %{HTTP_USER_AGENT} "Windows" [NC]
RewriteRule ^$ https://google.com [L,R=302]
它工作得很好,但如果你进入另一个子目录,如mywebsite.com/cats可以从桌面进入,我怎么能阻止子目录并将其重定向到另一个网站
您的RewriteRule
只匹配空路径,所以像https://example.com/
这样的URL。然而,您希望匹配任何路径,以便所有请求都被重定向。所以你只需要改变你的匹配模式:
RewriteCond %{QUERY_STRING} !^android [NC]
RewriteRule ^ https://example.com/ [L,R=302]
另一种选择是保留重定向目标的请求路径(取决于您实际想要实现的目标):
RewriteCond %{QUERY_STRING} !^android [NC]
RewriteRule ^ https://example.com%{REQUEST_URI} [L,R=302]
您当前正在使用R=302
临时重定向。非常适合测试!但是请记住,一旦一切正常工作,将其更改为R=301
永久重定向。
我还从你的规则中删除了第二个条件。并不是所有的"桌面系统"使用MS-Windows操作系统。我猜你也想处理许多基于MacOS和Linux的系统。