我的域 domain.com被重定向到www.domain.com 但是,由于内部重定向,它仅适用于某些情况:
这里的问题是,在内部, www.domain.com/folder / 通过RewriteRule使用 blog / index.php :
RewriteRule ^$ ../blog/index.php
我不知道为什么,但您被重定向到脚本而不是漂亮的网址。
IT在这里工作(从 domain.com/folder / 重定向到 www.domain.com/folder ,当所有代码在同一"目录&#34中时;条目):
<Directory /var/www/vhosts/domain.com/httpdocs/>
Options -All +FollowSymLinks
RewriteEngine on
# redirect non-www to www
RewriteCond %{HTTP_HOST} ^domain\.com
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
RewriteRule ^folder/$ ../blog/index.php
</Directory>
此处不起作用(从 domain.com/folder / 重定向到 www.domain.com/blog/index.php ,当2&#34;使用目录&#34;条目:
<Directory /var/www/vhosts/domain.com/httpdocs/>
Options -All +FollowSymLinks
RewriteEngine on
# redirect non-www to www
RewriteCond %{HTTP_HOST} ^domain\.com
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
</Directory>
<Directory /var/www/vhosts/sonidon.com/httpdocs/folder/>
RewriteEngine on
RewriteRule ^$ ../blog/index.php
</Directory>
在两个目录中使用选项+ FollowSymLinks + SymLinksIfOwnerMatch 进行测试,但没有运气:(
我在这里看到了使用VirtualHosts而不是Directory的解决方案: Generic htaccess redirect www to non-www 但认为它应该是一种方法来做到这一点,因为这个麻烦不仅与&www;非www到www&#34;但任何重定向。
答案 0 :(得分:0)
<Directory /var/www/vhosts/domain.com/httpdocs/>
Options -All +FollowSymLinks
RewriteEngine on
# redirect non-www to www
RewriteCond %{HTTP_HOST} ^domain\.com
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
</Directory>
<Directory /var/www/vhosts/sonidon.com/httpdocs/folder/>
RewriteEngine on
RewriteRule ^$ ../blog/index.php
#ADDED LINE BELOW
RewriteRule ^/$ ../blog/index.php
</Directory>
尝试我上面添加的行。我认为问题是“http://domain.com”被重定向到“http://www.domain.com/”(注意斜杠)。然后,如果没有uri ^ $,你在第二组重定向,但实际上uri是“/”。