所以,目前,我的.htaccess看起来有点像这样:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
RewriteCond %{HTTP_HOST} ^colorspace\.am$ [OR]
RewriteCond %{HTTP_HOST} ^www\.colorspace\.am$
RewriteRule ^portfolio\/?(.*)$ "http\:\/\/i\.colorspace\.am\/portfolio$1" [R=301,L]
我想将我的根目录中的所有内容移动到子域(我已经完成)但我不希望人们不能使用这些链接。 www.colorspace.am/portfolio需要重定向到i.colorspace.am/portfolio,其中包含的所有集合(即/ portfolio / YYYYMMDD)也需要动态“调整”(www.colorspace.am/portfolio) / YYYYMMDD - &gt; i.colorspace.am/porfolio/YYYYMMDD
注意:i.colorspace.am包含2011年的内容; ii.colorspace.am将包含2012.它们是两个完全不同的WP安装,具有各自的数据库。不确定它是否相关但是......
似乎正在发生的事情是/ portfolio被指示重定向到i.colorspace.am/portfolio,但无论出于何种原因,它最终都会出现在i.colorspace.am
如果有办法我可以将任何www.colorspace.am/folder/sub-folder重定向到i.colorspace.am/folder/sub-folder(通配符?)..这会很棒。但在这一点上,我对同一个完全正常工作的重定向感到高兴。
注意:重定向代码由我的管理面板生成。我试过了
Redirect /portfolio http://i.colorspace.am/portfolio
但它导致了“太多重定向”错误。
答案 0 :(得分:0)
从
重定向后RewriteRule ^portfolio\/?(.*)$ http//i.colorspace.am/portfolio$1 [R=301,L]
规则
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
再次访问。这就是它在i.colorspace.am
结束的原因。
添加这两条规则
RewriteCond %{HTTP_HOST} ^(?:www\.)?i.colorspace\.am$
RewriteRule protfolio -[L]
按顺序提到。
也改变(只是一个小优化)
RewriteCond %{HTTP_HOST} ^colorspace\.am$ [OR]
RewriteCond %{HTTP_HOST} ^www\.colorspace\.am$
RewriteRule ^portfolio\/?(.*)$ http//i.colorspace.am/portfolio$1 [R=301,L]
到
RewriteCond %{HTTP_HOST} ^(?:www\.)?colorspace\.am$
RewriteRule ^portfolio\/?(.*)$ http//i.colorspace.am/portfolio$1 [R=301,L]
并按照下面提到的顺序将其放在IfModule
块内。
在.htaccess
:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
#add these 2 lines:
RewriteCond %{HTTP_HOST} ^(?:www\.)?i.colorspace\.am$
RewriteRule protfolio -[L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteCond %{HTTP_HOST} ^(?:www\.)?colorspace\.am$
RewriteRule ^portfolio\/?(.*)$ http//i.colorspace.am/portfolio$1 [R=301,L]
</IfModule>
# END WordPress