我目前正在使用此功能将domain.com/username重定向到以下地址
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ publicprofile.php?username=$1&%{QUERY_STRING}
我正在开发移动网站,因此我需要将移动用户重定向到移动网站。
这是我为移动重定向找到的代码
RewriteCond %{HTTP_USER_AGENT} ^.*iPhone.*$
RewriteRule ^(.*)$ http://mobile.yourdomain.com [R=301]
RewriteCond %{HTTP_USER_AGENT} ^.*BlackBerry.*$
RewriteRule ^(.*)$ http://mobile.yourdomain.com [R=301]
RewriteCond %{HTTP_USER_AGENT} ^.*Palm.*$
RewriteRule ^(.*)$ http://mobile.yourdomain.com [R=301]
如何让它们同时工作?
答案 0 :(得分:0)
把第二块放在第一块之前,你应该好好去。
如果需要,第二个块将执行标头重定向,这将导致新请求发生。在那之后,内部重写规则轮到他们了。
答案 1 :(得分:0)
请允许我优化您的规则:
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (iphone|blackberry|palm|android) [NC]
RewriteRule ^(.*)$ http://mobile.yourdomain.com [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ publicprofile.php?username=$1 [QSA,L]
[NC]代表'不区分大小写'。 [QSA]是追加查询字符串。 您可以在mod_rewrite tester上测试您的规则。