Apache重写规则301 - 处理子文件夹

时间:2014-08-02 13:03:06

标签: apache .htaccess mod-rewrite redirect

即使用户通过输入www.mydomain.org进行访问,我也希望该网站始终显示为mydomain.org。我知道最好的方法是在.htaccess文件中使用重写规则。我一直在尝试这个,规则是“工作”。但不是我想要的。这是我在.htaccess文件中添加的重写规则。

Options +FollowSymlinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^teachersplanner.org [NC]
RewriteRule ^(.*)$ http://www.teachersplanner.org/$1 [R=301,NC]

问题是我的托管有一个public_html文件夹,我的代码进入该文件夹,重写规则将其标记在用户提供的URL的末尾。

这就是我的意思:

  • 用户输入www.mydomain.org,一切正常
  • 用户输入mydomain.org,网址将转换为www.mydomain.org/public_html

任何人都可以解释如何通过在网址末尾添加public_html来停止重写吗?

2 个答案:

答案 0 :(得分:0)

RewriteCond %{HTTP_HOST} !^www\.mydomain\.de$
RewriteRule ^(.*)$ http://www.mydomain.de/$1 [R=301,L]

也许这会解决你的public_html问题。

答案 1 :(得分:0)

而不是捕获URI使用%{REQUEST_URI}

Options +FollowSymlinks
RewriteEngine on

RewriteCond %{HTTP_HOST} ^teachersplanner\.org$ [NC]
RewriteRule ^ http://www.teachersplanner.org%{REQUEST_URI}  [R=301,NE]