我正在为教堂开发一个新网站。旧域名为: chippingcampdenbaptistchurch.org.uk 新域名为:campdenbaptist.org.uk
campdenbaptist.org.uk 域是 Linux 共享服务器的附加域。在它的文件夹中,它有以下 .htaccess 文件:
RewriteEngine On
RewriteRule !^(dev(/.*)?|www\.chippingcampdenbaptistchurch\.org\.uk)$ http://www.chippingcampdenbaptistchurch.org.uk/ [R,L]
基本上,如果用户要求 JUST campdenbaptist.org.uk,那么他们将被发送到旧站点(位于 www.chippingcampdenbaptistchurch.org.uk 的不同服务器上)。但是,如果他们要求 campdenbaptist.org.uk/dev - 那么他们将被发送到新站点所在的 /dev 文件夹中。
它在 Concrete5 ( http://www.concrete5.org/ ) 上运行,此 /dev 文件夹中的 .htaccess 如下所示:
SetEnv TZ Europe/London
<IfModule mod_rewrite.c>
RewriteEngine On
#=============WWW. REDIRECT===========#
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/dev/$1 [R=301,L]
#=============C5 REDIRECT===========#
RewriteBase /dev/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}/index.html !-f
RewriteCond %{REQUEST_FILENAME}/index.php !-f
RewriteRule . index.php [L]
</IfModule>
它基本上检查是否 www. 是否存在(如果没有,请附加它)并处理“C5 重定向”块中的漂亮 URL。
我遇到的问题是,有时服务器似乎会为 AJAX 调用抛出错误(重定向到旧站点),例如以下两个:
http://www.campdenbaptist.org.uk/dev/tools/blocks/booking_form/snag_dates.php?1=1&date=03/16/2013&page=272
(如果您将查询字符串的第一部分中的 1=1 更改为 a=1 之类的东西,这似乎很好?!) - 或
http://www.campdenbaptist.org.uk/dev/tools/required/files/importers/remote?_returntype=text&fIDW&task=update_file&url_upload_1=http%3A%2F%2Ffeatherfiles.aviary.com%2F2012-11-26%2F1d6b111bd5684978a293e193828a181a.jpg&ccm_token53952089%3A5ec7e1b4c88c7e62ba9f5da66b36cef0
有任何想法吗?似乎如果您从上述两个调用中删除查询字符串,则不会发生错误。非常感谢!