htaccess从www重定向到非www内部子目录

时间:2014-04-25 12:15:25

标签: .htaccess url-redirection

我无法访问Web服务器根目录,我需要将来自www.mydomain.com/folder1/folder2的调用重定向到http://mydomain.com/folder1/folder2

我试着写下.htaccess以下内容:

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^mydomain.com/folder1/folder2[nc]
RewriteRule ^(.*)$ http://mydomain.com/folder1/folder2/$1 [r=301,nc]

我将它放在folder2中,它没有用,我需要更改它才能工作?

3 个答案:

答案 0 :(得分:1)

这应该有效:

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [L,R=302]

正在检查它是否为www.,如果是,则将其重定向到http://domain.com

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.domain\.com [NC]
RewriteRule ^folde/dopl$ http://domain.com/folde/dopl [L,R=302]

RewriteCond %{HTTP_HOST} ^www\.domain\.com [NC]
RewriteRule ^folde/dopl/(.*)$ http://domain.com/folde/dopl/$1 [L,R=302]

答案 1 :(得分:0)

%{HTTP_HOST}仅包含域(mydomain.com)。此外,您的条件仅适用于已经缺少www的主机。点数需要逃脱。

所以你的RewriteCond应该是:

RewriteCond %{HTTP_HOST} ^www\.mydomain\.com [NC]

此外,您的RewriteRule捕获整个请求字符串(包括/ folder1 / folder2),规则重定向到/ folder1 / folder2 / folder1 / folder2。

请参阅Howlin的答案以获得正确的尝试。

答案 2 :(得分:0)

尝试以下方法:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www\.mydomain\.com)?$
RewriteRule ^(.*)$ http://mydomain.com/folder1/folder2/$1 [R=301,L]

顺便说一句,如果您使用301重定向,您的浏览器可能会缓存重定向,因此请在再次测试之前清除缓存!

参考: https://webmasters.stackexchange.com/questions/25775/subfolder-non-www-redirect