htaccess重定向无法正常工作

时间:2014-03-07 06:31:00

标签: .htaccess

我正在尝试完成以下操作,但我的代码无效 1)我想要非www到www或www到非www 2)应将桌面用户重定向到example.com/homepage 3)从网址中删除或隐藏/主页 4)将移动用户重定向到example.com/m

这是我的代码,它不起作用,列出的问题太多了,但是在我的脑海中,我可以想到我遇到的两个问题:“无法打开页面,因为发生了太多的重定向”和移动用户是被带到/ homepage而不是/ 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]

请帮帮我,我很沮丧,我应该改变一下这段代码才能让它发挥作用?

2 个答案:

答案 0 :(得分:0)

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

听起来好像您的代码卡在重定向循环中,浏览器阻止它继续运行。 我知道这不是一个完整的答案,但希望这可以帮助你更好地理解代码。

希望其他人可以加入,否则我可以在计算机上挖掘出正常工作的代码,希望能给你更好的回复。

- 从我的牢房发送

答案 1 :(得分:0)

www /非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]