在默认端口80上运行其他端口上的magento
我已将端口8080上的Apache虚拟主机配置为指向我的magento网站。在默认端口80上运行其他端口上的magento
Listen 8080
<VirtualHost 6x.2x.6x.1x:8080>
ServerAdmin [email protected]
ServerName domainname.com
ServerAlias *.domainname.com
DocumentRoot /var/www/sites/domain/
<Directory />
Options FollowSymLinks
AllowOverride all
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
ServerSignature On
<LocationMatch ".*\svn.*">
Order allow,deny
Deny from all
</LocationMatch>
</VirtualHost>
当我去的网站www.domain.com:8080的JS,CSS,IMG和其他东西都没有加载,因为端口未连接到链接
下面是一个重写规则在Magento的.htaccess似乎并不工作:
<IfModule mod_rewrite.c>
############################################
## enable rewrites
Options +FollowSymLinks
RewriteEngine on
############################################
## you can put here your magento root folder
## path relative to web root
#RewriteBase /magento/
############################################
## workaround for HTTP authorization
## in CGI environment
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
############################################
## always send 404 on missing files in these folders
RewriteCond %{REQUEST_URI} !^/(media|skin|js)/
############################################
## never rewrite for existing files, directories and links
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
############################################
## rewrite everything else to index.php
RewriteCond %{SERVER_PORT} !^8080$
RewriteRule .* http://6x.2x.6x.1x:8080/index.php [L]
</IfModule>
是重写-MOD不同端口上运行的Magento网站的解决方案?如果是,那么当前重写规则中的错误在哪里?
谢谢你,
Margots
我管理,其中一个直播店端口80上一个服务器和开发站点上运行的Magento站点上的端口另一台服务器上运行3000。当复制从直播现场dev下所有我需要做的是改变在core_config_data表中的两行,具有:
- 路径=“网页/不安全/ BASE_URL”
- 路径=“网络/安全/ BASE_URL “
您需要在网址的末尾添加您的端口号,这就是全部。在我而言这两个行是这样的:
(config_id,范围,scope_id,路径, 值)
(默认值0,网页/不安全/ BASE_URL, ,http://www.dev-server.com:3000/)
(默认值0,网络/安全/ BASE_URL, ,http://www.dev-server.com:3000/)
请注意,我没有证书我的dev的服务器上,所以我不USI ng https作为安全的base_url。如果您希望使用https,则应将该设置更改为https,并且应该在末尾省略自定义端口。
标准.htaccess文件的修改不需要,应该可以避免。
编辑
如果您没有访问您可以尝试创建一个PHP文件,该文件将修改数据库中使用Magento的数据库:
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
require_once ("app/Mage.php");
Mage::app('default');
$db = Mage::getSingleton('core/resource')->getConnection('core_write');
$db->query("UPDATE `core_config_data` SET `value` = 'http://dev-server.com:3000/' WHERE `path` = 'web/secure/base_url';");
$db->query("UPDATE `core_config_data` SET `value` = 'http://dev-server.com:3000/' WHERE `path` = 'web/unsecure/base_url';");
?>
你需要把这个文件根magento文件夹或更改路径为Mage.php,如果你把它放在别的地方。
我还没有尝试过(我因为...不想杀死我的店),但我认为你可以更改端口在Magento管理。
在System/Configuration/Web/Base URL中。试着将端口添加到那里的URL。那样有用吗?
你不能重写Magento使用mod_rewrite在其HTML输出中写入的URL。请求错误的URL(没有:8080端口)甚至不会到达您的服务器。
UPDATE:
查看HTML输出的来源(即去你店与您的网页浏览,然后按CTRL-U或其他)。像以下这样的标签是否有正确的URL,包括端口?
<script type="text/javascript" src="http://yourstore.com:8080/js/prototype/prototype.js"></script>
感谢您播放pableu。 我无法进入管理员,因为该网站既不是前台也不后台 我将如何访问系统/配置/网页/基地址? 没有链接不包括端口,这是问题。你是说当magent包含js,css文件等时,它不会对基础url进行用户重写规则? 再次感谢您的帮助 – latvian 2010-07-09 02:12:51
不,Magento根据重写规则不会重写其URL。它从不查看.htaccess文件。 * webserver *使用.htaccess处理*传入*请求。重写规则从不用于在服务器端创建URL。无论如何,如果你无法访问管理员,你必须更改MySQL中的URL,正如Silvo在他的回答中所描述的那样。 – pableu 2010-07-09 07:58:56
你缺少这样的:
NameVirtualHost 6x.2x.6x.1x:8080
也许你只是没有在这里,因为你的网站正在复制?
如果Magento从错误的网站加载图片,您在Magento的.htaccess
文件中无能为力:图片请求永远不会到达那里。他们会去任何其他网络服务器上运行的端口80.
如果Magento正在构建绝对链接,包括协议和主机(一个非常毫无意义的带宽浪费恕我直言),你只能有这个问题。我的建议是,你看看应用程序设置,看看是否有地方指定网站的基本网址(因为应用程序似乎无法自己找到它)。
(我试图访问Magento的演示网站,但它需要登记。)
Magento确实为所有内容编写绝对URL。这有点毫无意义,但我从来没有考虑过关闭它。带宽并不重要,因为我们使用mod_gzip(或者mod_deflate,我不记得)。这里是一个Magento的演示商店:http://demo.magentocommerce.com/正如你所看到的,所有的脚本,CSS,图像都是通过绝对URL链接的。 – pableu 2010-07-08 10:26:23
感谢Alvaro回放 我的网站正在加载,但没有js,css,img src = loaded。然后当我点击链接时,显示'找不到页面'。我已经尝试过并且没有指定NameVirtualHost,并且都是相同的结果。我喜欢你的建议来查看应用程序设置。我想我将不得不在数据库中做,因为我没有访问前端或后端。 再次感谢 – latvian 2010-07-09 02:27:37
显示的所有方法似乎都使用非常复杂的过程来执行此操作。
这是非常简单的,更改URL以包括管理员>系统>配置>网络端口>的url
在那里,你可以定义基本URL,皮肤和媒体的URL。
Silvo谢谢你,它看起来像一个解决方案,但我现在没有DB访问来检查它。一旦我做了,我会让你知道它是如何工作的 – latvian 2010-07-09 02:48:03
@latvian:我添加了一个用php文件更改数据库的方法,也许你会发现它有帮助。 – silvo 2010-07-10 07:03:55
谢谢西尔沃。它做了诡计。你是最棒的!:) – latvian 2010-07-11 02:09:56