【发布时间】:2014-10-24 10:16:09
【问题描述】:
我正在尝试根据 .htacess 中的用户代理将我的主站点 (www.mainsite.com) 重定向到我的移动站点 (m.mainsite.com)。我使用了以下代码,它正确地重定向到 m.mainsite.com。
RewriteCond %{HTTP_USER_AGENT} (Android|AU-MIC|AUDIOVOX|ALCATEL|Blackberry|Blazer|Googlebot-mobile|Handheld|iPhone|iPod|Klondike|LG-|LGE-|Nokia|NokiaN8|Opera\ Mini|PalmOS|PalmSource|Smartphone|Symbian|WebOS|Windows\ CE|Windows\ Mobile|Windows\ Phone|nokia|UP.Link|UP.Browser)
RewriteRule (.*) http://m.mainsite.com/$1
但是,当我转到移动网站时,我似乎丢失了重写后的 URL。那么 m.mainsite.com/page1 应该是什么,类似于 m.mainsite.com/index.php?url=page1。
我尝试在移动网站上使用 .htaccess 重写 URL,但无法弄清楚如何删除 index.php 之后的部分。谁能帮我弄清楚如何从 m.mainsite.com/index.php?url=page1 中删除“index.php?url=”?
或者在重定向期间通过非移动版本中的 htaccess 解决这个问题会更容易吗?
完整代码如下:
[code]
RewriteCond %{HTTP_HOST} ^mainsite.com
RewriteRule (.*) http://www.mainsite.com/$1 [R=301,L]
RewriteRule ^(.*)\_(\?.*)?$ $1$2 [R=301,L]
RewriteRule .* - [env=REWRITE_ON:1]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !\.(js|css|png|jpg|gif)$
RewriteRule ^(.*)$ index.php?url=$1 [L]
RewriteCond %{HTTP_USER_AGENT} (Android|AU-MIC|AUDIOVOX|ALCATEL|Blackberry|Blazer|Googlebot-mobile|Handheld|iPhone|iPod|Klondike|LG-|LGE-|Nokia|NokiaN8|Opera\ Mini|PalmOS|PalmSource|Smartphone|Symbian|WebOS|Windows\ CE|Windows\ Mobile|Windows\ Phone|nokia|UP.Link|UP.Browser)
RewriteRule (.*) http://m.mainsite.com/$1[code]
谢谢 加里
【问题讨论】:
标签: php apache .htaccess mod-rewrite redirect