这是我的.htaccess:
### PHP stuff
AddHandler application/x-httpd-php5 .shtml .html .htm
ErrorDocument 404 /404.shtml
# Protect the htaccess file
<Files .htaccess>
Order Allow,Deny
Deny from all
</Files>
Options +FollowSymlinks
<IfModule mod_rewrite.c>
### Turn the rewrite engine on
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.MAINSITE\.co/SECONDSITE.org/$ [NC]
RewriteRule ^(.*)$ http://www.SECONDSITE.org/$1 [R=301,L]
### We want everyone to go to http://www.MAINSITE.co instead of without the www
RewriteCond %{HTTP_HOST} !^www\.MAINSITE\.co$ [NC]
RewriteRule ^(.*)$ http://www.MAINSITE.co/$1 [R=301,L]
# BEGIN WordPress
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
</IfModule>
# Disable directory browsing
Options All -Indexes
所以问题是SECONDSITE实际上是作为MAINSITE的子目录而是我的主机,将该目录重定向到SECONDSITE.org
现在的问题是,如果我尝试转到http://www.SECONDSITE.org,它会将我重定向到http://www.MAINSITE.co/SECONDSITE.org/,这是一个有效的目录但这两个网站是完全无关的,我不希望任何人看到两个站点之间的任何连接。事实上,如果有人在访问MAINSITE时访问SECONDSITE目录,我会希望301重定向丢弃404,而不是301;
我意识到从非www到www重写导致上述错误所以我需要的是:
1)将非www MAINSITE.co重定向到www.MAINSITE.co
2)将对http://www.MAINSITE.co/SECONDSITE.org/的任何访问权限重定向到http://www.SECONDSITE.org/(如果可能,还包括网页)或更好地抛出404错误并向前往{{3}的任何人显示错误页面同时允许正常访问http://www.MAINSITE.co/SECONDSITE.org/
3)确保在任何情况下都没有无限循环
据我所知,我可能需要创建2个.htaccess文件,将其中一个放在MAINSITE中,另一个放在SECONDSITE目录中,但我不知道如何构建所有这些......
非常感谢你的帮助!正如你可以看到我的统计数据,我总是接受答案并对有用的建议进行投票,这篇文章也不例外。再次感谢。