我在子域名2012.m-y-d-o-m-a-i-n.de中开发了一个带modx的站点。旧网站在oldsite.m-y-d-o-m-a-i-n.de中运行。该站点从mydomain.net(没有破折号)重定向到oldsite.m-y-d-o-m-a-i-.net。 网站管理员昨天切换到新网站2012.m-y-d-o-m-a-i-.net。 FURL已打开,在htaccess中我有这段代码:
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
# Friendly URLs
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
</IfModule>
重定向有效,但所有链接均指2012.m-y-d-o-m-a-i-n-de。如何教modx新的siteURL变量。我再次使用了设置,我清理了几次缓存,该网站仍然认为它位于m-y-d-o-m-a-i-n-de的子域中。子域名应该从每个URL中消失。两个DNS托管都运行相同的服务器。谢谢你的帮助
答案 0 :(得分:1)
通常的解决方案是将此标记添加到所有模板的head部分:
<base href="[[++site_url]]" />
您无需添加任何定义。 MODX
将根据用户所在的网址(重定向后)计算site_url
。如果移动网站,对site_url
进行硬编码会导致问题。
您还应取消注释强制.htaccess
或www
网址的non-www
部分。如果没有那个MODX
,如果用户从一个用户切换到另一个用户,则会失去会话。
答案 1 :(得分:0)
您希望在.htaccess文件中设置一个规则,该规则将检查传入的URL并将其重定向到www.mydomain.de(如果情况并非如此)。
将此代码放在 {/ 1}}评论之前的现有.htaccess:
# Friendly URLs
这将捕获http://2012.mydomain.de,http://2011.mydomain.de,http://mydomain.de等,301代码将通知抓取工具子域已永久移至www域。
答案 2 :(得分:0)
检查core / config / config.inc.php, 看看它是否还有你的旧域名。 如果它仍然是错误的域名,请在第23行添加定义以根据需要设置您的站点URL和主机:
define('MODX_HTTP_HOST','www.YOURDOMAIN.com');
define('MODX_SITE_URL','http://www.YOURDOMAIN.com/');