我的网站在Joomla上运行,安装在http://example.com/joomla,但我的网址仍然为http://example.com(我从根目录访问Joomla文件夹)。我觉得把joomla与我网站上的其他文件和文件夹分开是很好的做法,但访问者在URL中看到joomla并不重要,因为它更好地看到URL中只有东西与他们在我的网站上搜索的内容有关现场。 所以我想我们从URL中跳过joomla吧。由于Cloudflare的所有网址都必须是www-URL才能正常工作。从网址跳过Joomla
我能做到这一点得益于以下解决方案:
https://stackoverflow.com/a/35047905/5681573
我修改的版本:
RewriteEngine on
RewriteCond %{THE_REQUEST} !joomla/
RewriteRule ^(.*)$ /joomla/$1 [L]
在.htaccess:
根的.htaccess joomla /子目录:
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule^https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE]
在我的解决方案中,包含从非www URL到www-URL和从http到https的重定向。
在的Joomla /的configuration.php我设置$ live_site = “https://example.com” 和 改变了tmp和日志文件夹:
- myserverpath /的public_html /的Joomla /管理员/日志
- myserverpath /的public_html/joomla/tmp
一切看起来不错。现在,当我测试了这些结果:
- https://www.example.com从https://www.example.com/joomla正确加载的内容,而不显示/的Joomla在URL
- 非www网址重定向到www的URL
- HTTP重定向到https
但与非www网址一个问题:
- https://example.com重定向到https://www.example.com/的Joomla
- http://example.com重定向到https://www.example.com/的Joomla当非www URL被重定向到WWW的URL
的Joomla不从URL跳过。 以www开头的所有其他链接在URL中没有“joomla”正确显示。无论您是直接输入地址,还是通过网站上的链接或按钮到达,joomla都会从任何www-URL进一步跳过。就在那一刻,一个非www的URL被重定向到一个www-URL,它不起作用,并且URL中出现了“joomla”这个词。
而且还1个例外是管理URL,这也是一个问题,独一无二的,因为它无法从URL跳过的Joomla都使用WWW的URL以及非www-URL时:
- https://example.com/administrator重定向到 https://www.example.com/的Joomla /管理员
- https://www.example.com/administrator重定向到 https://www.example.com/的Joomla /管理员
我搜索了几个小时,没有结果。
有些事情,我试图解决这个问题:
- 改变$ live_site为 ''(没有帮助)
- 改变$ live_site为 'https://www.example.com'(没有帮助)
- 改变$ live_site为' https://example.com'(没有帮助)
- 改变RewriteBase中的Joomla/htaccess来RewriteBase /(变化都没有)
- 改变RewriteBase中的Joomla/htaccess来RewriteBase /的Joomla /(没有变化)
一些有用的提示或可能的解决方案是非常受欢迎的。提前致谢。
关于前三行的解决答案,我发布此页面上的代码:因为该解决方案的答案
编辑我创造了只将其用于管理URL:
RewriteCond %{REQUEST_URI} (.*)administrator$ RewriteCond %{REQUEST_URI} !/$ RewriteRule ^(.*)([^/])$ http://%{HTTP_HOST}/$1$2/ [L,R=301]
虽然成功从所有网址跳过joomla(请参阅解决方案的答案),对于我来说,问题仍然是为什么需要添加后面的斜杠(如上所示),以便为管理员URL解决此问题。否则,当您不添加这三行代码时,管理员URL将重定向到joomla/administrator,并在URL中显示joomla。 这是否与定义设置有关... ...谁知道...