在我网站上的a标签中,我将它们设置为:
<a href="/home"></a>
这在我的测试服务器上工作正常,这是http,但是当我将我的网站推送到生产服务器(https)时,它会导致“此网站无法访问页面”。我发现通过在末尾添加一个/来修改标签:
<a href="/home/"></a>
使其有效。我认为这可能是由于PHP或服务器解释我的相对链接的方式。任何人都可以告诉我为什么这些没有/最终的链接可以在http而不是在https上工作?还有一些方法我可以修改这个服务器端而不必经过并添加/到所有链接的末尾?
谢谢!
答案 0 :(得分:0)
您可以尝试通过编辑.htaccess
来自动更正此问题,如下所示:
#declared once at top of htaccess file.
RewriteEngine On
#if is a directory
RewriteCond %{REQUEST_FILENAME} -d
#enforce a trailing slash to the directory given
RewriteRule ^(.*[^/])$ /$1/ [L,R=301]
这样可行,但我不确定服务器设置中操作的顺序优先级;在允许您的帐户.htaccess
使用URI之前,亚马逊系统可能正在检查它是否是文件夹。
但上述意思是:
www.yoursite.com/index.php
www.yoursite.com/home
将由服务器处理为:
www.yoursite.com/index.php
www.yoursite.com/home/
--> and so will load the default index file from this directory, not shown to browser
--> www.yoursite.com/home/index.php