2014-03-07 85 views
0

我想完成以下操作,但是我的代码不工作 1)我想要做www非www或者www非www www2)桌面用户应该重定向到example .com /主页 3)删除或隐藏/网址从url 4)将移动用户重定向到example.com/mhtaccess重定向工作不正常

这是我的代码,它不工作,太多的问题列出,但关闭顶部我可以想到我遇到的两个问题:“因为发生了太多重定向而无法打开页面”,移动用户被带到/主页而不是/ m

# remove www 
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] 
RewriteRule^http://%1%{REQUEST_URI} [NE,R=301,L] 

RewriteEngine On 
RewriteRule ^$ /homepage [L] 


RewriteEngine On 
RewriteRule ^$ homepage/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ homepage/$1 


RewriteCond %{HTTP_USER_AGENT} ^.*(ip(ad|od|hone)|blackberry|iemobile|android).*$ [NC] 
RewriteCond %{REQUEST_URI} !^/m/.* 
RewriteRule ^.*$ http://example.com/m [R=301,L] 

请帮助我,我很沮丧,我该怎么改变这段代码才能使它工作?

回答

0

不幸的是,即使在正则表达式或重定向在htacces中没有多余的,但我已经得到了类似的代码来自己工作。

听起来好像你的代码陷入了重定向循环,浏览器正在阻止它继续。 我知道那不是一个完整的答案,但希望能帮助你至少让代码更有意义。

希望别人可以在别的地方,否则我可以挖掘正在工作时,在计算机上的代码,并希望给你一个更好的回应。

- 从我的手机发送

0

www/non-www很好。

对于首页的东西,你需要做两件事:确保你重写到主页目录实际存在(否则你会得到500服务器错误),并排除移动用户代理。

所以这个东西:

RewriteEngine On 
RewriteRule ^$ /homepage [L] 


RewriteEngine On 
RewriteRule ^$ homepage/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ homepage/$1 

需要看起来像这样:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{HTTP_USER_AGENT} !^.*(ip(ad|od|hone)|blackberry|iemobile|android).*$ [NC] 
RewriteCond %{DOCUMENT_ROOT}/homepage%{REQUEST_URI} -f [OR] 
RewriteCond %{DOCUMENT_ROOT}/homepage%{REQUEST_URI} -d [OR] 
RewriteRule ^(.*)$ homepage/$1 [L] 
+0

仍然无法正常工作。在桌面上,它将进入根目录,它不会进入/ homepage,在移动设备上,页面不会加载,因为服务器停止响应,所以无法加载。 – user3371152