我一直在研究已有应用程序的iPhone版本。mod_rewrite和iPhone重定向
我们使用一些改写规则来改善搜索引擎优化,让访问者更轻松。 例如。 http://www.site.com/index.php?job=4ef187d6e66b7改写为http://www.site.com/jobs/4ef187d6e66b7
我们还使用规则将所有iPhone用户重定向到我们的移动网站,如下:
RewriteCond %{HTTP_USER_AGENT} iPhone
RewriteCond %{REQUEST_URI} !^/m/
RewriteRule .* /m/ [R]
移动网站只是位于www.site.com/m/
但是,当我前往了http://www.site.com/jobs/4ef187d6e66b7,我越来越重定向到http://www.site.com/m/?job=4ef187d6e66b7,而应该是http://www.site.com/m/jobs/4ef187d6e66b7
有没有办法来重定向人,仍然保持一些日。现有规则? 我也想加入这个规则,但没有奏效
RewriteRule ^m/jobs/([^/]+) m/index.php?job=$1 [NC]
这是一个完整的.htaccess
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^jobs/([^/]+) index.php?job=$1 [NC]
RewriteCond %{HTTP_USER_AGENT} iPhone
RewriteCond %{REQUEST_URI} !^/m/
RewriteRule .* /m/ [R]
这似乎起初工作,url不会被正确重写。 但形成一些理由似乎并没有工作:_请求的URL/m/jobs/4ef9a591edc33在此服务器上找不到._ – 2012-01-02 12:21:03
这意味着重写IS工作! iPhone现在重定向到**/m /...**。您现在应该正确处理'/ m/...'URL。如果你想在最后的重写规则中加入,你应该相应地修改它。我将编辑我的答案以反映这一点。 – bouke 2012-01-02 12:48:37
谢谢,重写确实有效。 我现在只是遇到了另一个问题,当我转到http://www.site.com/jobs/4ef9a591edc33时,我被重定向到了http://www.site.com/m/index。 php?job = 4ef9a591edc33 哪个是正确的url,但它应该显示为http://www.site.com/m/jobs/4ef9a591edc33 – 2012-01-02 13:19:24