我有一个具有许多不同子文件夹/帐户的专用服务器。我有一个新的Joomla 2.5站点的测试安装,其中一个帐户/子文件夹还没有与之关联的域名。我必须通过
访问它http://(SERVER-IP)/~subfolder/
而不是
http://www.example.com/
我的大多数链接类型都运行顺畅(即“单篇文章”链接到正确的文章别名等)但是当我使用外部URL菜单项类型链接到内部文章别名时,事情就变得糟糕了。 ..在菜单项选项中,我在“链接”字段中输入“/ contact-us”,以便(理论上)我可以链接到
http://(SERVER-IP)/~subfolder/index.php/contact-us
然而它正在删除子文件夹,导致它链接到专用服务器的apache根,导致:
http://(SERVER-IP)/contact-us
当我使用IP地址而不是域名时,我只有这个问题......
我重写了URL,所以不是.htaccess文件导致问题......定义的绝对路径是否有问题?有关如何解决此问题的任何想法,以便在开发过程中我可以停止查看404错误?感谢所有帮助指引我朝着正确的方向前进!
答案 0 :(得分:0)
开头的正斜杠意味着从文档根开始,所以它基本上就是将所有“文件夹”剥离到根域(在你的开发系统上只意味着IP地址)。
一个选项是使用base
标记设置外部网址菜单类型的相对链接。您可以在<head>
声明之后将其添加到模板文件的index.php中:
<base href="<?php echo JURI::root(); ?>" />
这可能会引入一系列相关链接问题,因此您可能需要在此处权衡问题:Is it recommended to use the <base> html tag?
第二个选项是在开始时使用index.php
进行尝试,因此请创建网址index.php/contact-us
。我相信这将作为内部链接正确路由。
如果您上线并打开htaccess URL重写,这将导致问题。我刚检查过,这不会删除index.php
部分,因此这是一个问题。
第三个选项(需要更多工作,但可能是推荐)是停止使用外部网址菜单项链接到内部网址。当您为网址设置菜单项时,Joomla往往功能最佳。 (大部分网址路由都是基于菜单项。)
实际上第三个选项是,可能更容易帮助您不使用外部URL菜单项而不是修复路由问题。