我在用着:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/mobile
RewriteCond %{DOCUMENT_ROOT}/mobile%{REQUEST_URI} -d
RewriteRule ^(.*?)/?$ /mobile/$1/ [L]
RewriteCond %{HTTP_USER_AGENT} "android|iphone|ipod" [NC]
RewriteCond %{REQUEST_URI} !^/mobile
RewriteRule ^(.*)$ /mobile/$1 [L]
问题是当手机被重定向时,来自根目录的图像将无法加载。我使用它是因为我需要将子目录(移动)添加到 url 示例中:
www.example.com/sub/file.php
www.example.com/mobile/sub/file.php
此代码有效,但根目录中的图像甚至不显示 src 的路径表明没有 /mobile/ 添加了 htaccess 规则。如果我将 RewriteCond %{REQUEST_FILENAME} !-f 添加到 conds 的第二行,就像在 secund 编辑中那样,根目录上的图像正在加载,但我永远不会被重定向到移动子目录,因为所有 url 都存在。
RewriteCond %{REQUEST_URI} !^/mobile
RewriteCond %{DOCUMENT_ROOT}/mobile%{REQUEST_URI} -d
RewriteRule ^(.*?)/?$ /mobile/$1/ [L]
RewriteCond %{HTTP_USER_AGENT} "android|iphone|ipod" [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/mobile
RewriteRule ^(.*)$ /mobile/$1 [L]