首页 > 解决方案 > PHP - 添加域名后某些页面和可点击按钮无法正常工作

问题描述

当我将域名实施到我的网站时。其他一些页面和一些可点击的按钮不起作用。为什么会这样?以及此类问题的任何解决方案?我只是实现了我的域名localhostwww.name.com然后发生了这个问题。

标签: php

解决方案


由于您没有实际脚本的示例,因此在回答时必须有点盲目,但是,当我第一次开始创建网站时遇到了同样的问题。我得出了几个结论:

1) 创建一个位于域根目录中的配置文件,该文件位于每个顶级页面上,其中包括可重用的项目,例如域根目录路径、重要文件夹、会话启动、可能是数据库连接凭据等。它有助于使您的脚本保持一致,并且您始终知道您可以访问相同的内容:

/config.php

<?php
define('DS', DIRECTORY_SEPARATOR);
define('ROOT_DIR', __DIR__);
define('FUNCTIONS', ROOT_DIR.DS.'functions');
define('VENDORS', ROOT_DIR.DS.'vendors');
define('BASE_URL', 'https://www.example.com');
# Start session
session_start();
# Create class loader
spl_autoload_register(function($class){
    # Turn a class name/namespace into a path
    $path = VENDORS.DS.trim(str_replace('\\', DS, $class), DS).DS.'.php';
    # Include file
    if(is_file($path))
        include_once($path);
});
# If you use predominantly functions, create a loader for that (see below)
include_once(FUNCTIONS.DS.'autoload.php');
# Add the the base_url function (as noted by others), since it's going to be used a lot
autoload('base_url');

2)创建几个方便的函数(或类),包括一个基本 url(正如其他人所提到的):

/functions/base_url.php

<?php
function base_url($path = false)
{
    return BASE_URL.$path;
}

如果您使用的是基于函数的系统,请创建一个函数加载器:

/functions/autoload.php

<?php
function autoload($func)
{
    if(!is_array($func))
        $func = [$func];

    foreach($func as $function) {
        if(!function_exists($function)) {
            if(is_file($file = FUNCTIONS.DS.$function.'.php'))
                include_once($file);
        }
    }
}

3) 创建链接和域路径时,使用base_url()

<a href="<?php echo base_url('/contact/') ?>">Contact</a>

页面 html 可能看起来像这样:

<?php
include_once(__DIR__.DIRECTORY_SEPARATOR.'config.php');
?><!DOCTYPE html>
<html>
<head>
<title>Home page</title>
<link rel="stylesheet" href="<?php echo base_url('/media/css/styles.css') ?>" />
<script src="<?php echo base_url('/media/js/scripts.js') ?>"></script>
</head>
<body>
    <nav id="main-menu">
        <a href="<?php echo base_url('/') ?>">Home</a>
        <a href="<?php echo base_url('/about/') ?>">About</a>
        <a href="<?php echo base_url('/contact/') ?>">Contact</a>
    </nav>
    <img src="<?php echo base_url('/media/images/banner.jpg') ?>" id="banner-image" />
</body>
</html>

无论如何希望这是有用的。


推荐阅读