我正在尝试完成以下操作,但我的代码无效 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]
请帮帮我,我很沮丧,我应该改变一下这段代码才能让它发挥作用?
答案 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]