我正在运行多站点启用Wordpress 3.1。我有多个网站都在Web根目录中共享相同的.htaccess文件。我使用RewriteCond来定位特定的网站,并将RewriteRules应用到每个网站。不幸的是,它不能按预期工作。以下是我在我的.htaccess文件:Wordpress多站点重写规则
RewriteEngine On
RewriteBase/
RewriteRule ^index\.php$ - [L]
# Blog1 Rewrite Rules which should only apply to blog1.mydomain.com
RewriteCond %{HTTP_HOST} ^blog1\.mydomain\.com [nc]
RewriteRule ^fileabc\.jpg$ http://blog1.mydomain.com/files/2011/05/fileabc.jpg [R=301,NC,L]
RewriteRule ^filexyz\.pdf$ http://blog1.mydomain.com/wp-content/themes/blog1Theme/Files/filexyz.pdf [R=301,NC,L]
# Blog2 Rewrite Riles which should only apply to blog2.com
RewriteCond %{HTTP_HOST} ^Blog2\.com [nc]
RewriteRule ^index\.html$ http://Blog2.com/index.php [R=301,NC,L]
RewriteRule ^page\.html$ http://Blog2.com/page/ [R=301,NC,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule^- [L]
RewriteRule . index.php [L]
我用的RewriteCond来针对特定网站(blog1.mydomain.com或blog2.com),他们对每一个具体的RewriteRules。
但是,ReWriteRules正在应用于这两个网站(blog1.mydomain.com和blog2.com)。
例如:
访问blog1.mydomain.com/fileabc.jpg应该重定向到http://blog1.mydomain.com/files/2011/05/fileabc.jpg
然而,访问Blog2.com/fileabc.jpg也重定向到http://blog1.mydomain.com/files/2011/05/fileabc.jpg
所以的RewriteRules正在应用于(全部)网站,而不仅仅是由RewriteCond指定的网站。
非常感谢帮助!
“RewriteCond仅适用于紧随其后的第一个rewriteRule,不适用于它下面的所有规则。因此,第二个rewriteRule将匹配任何域。” 非常有趣。感谢您的信息和Apache链接。那么有没有办法让一个RewriteCond适用于多个RewriteRule?或者说,就是重复的RewriteCond的正确方法: 的RewriteCond 重写规则 的RewriteCond 的RewriteCond 重写规则 的RewriteCond 重写规则 – user663561 2011-06-08 19:22:37
技术上它不是可能的,但也有变通http://www.webmasterworld.com/forum92/1854。 htm,如果你喜欢答案,随时可以upvote :) – 2011-06-08 20:02:31
“RewriteCond仅适用于紧随其后的第一个rewriteRule,不适用于它下面的所有规则。” - 谢谢,我收到了其他信息。感谢您的更正。 – user663561 2011-07-11 19:55:03