Ajax“重定向”和.htaccess复制内容

时间:2018-12-04 22:36:21

标签: php ajax .htaccess routing

我想使用html音频播放器,但是为了在页面之间导航时保​​持播放器的播放,我使用Ajax仅刷新内容。问题是我的htaccess。我想将所有内容重定向到index.php文件,以便可以验证任何请求,然后返回html页面。但是,当我尝试使用Ajax刷新内容时,htaccess会使重定向再次加载index.php,在index.php内创建index.php,从而复制模板。在这种情况下,是否有任何解决方法,可以一起使用这2种东西,以仅在导航中刷新内容,保持播放器运行,并使每个重定向都转到index.php以验证请求? 我在下面做了一个简单的例子:

index.php

<?php

require_once "header.html";

$routes = array(
    "/" => "home.html",
    "/profile" => "profile.html",
    "/config" => "config.html"
);

$uri = $_SERVER["REQUEST_URI"];

$file = isset($routes[$uri]) ? $routes[$uri] : $routes["/"];
echo '<div id="content">';
require_once $file;
echo '</div>';

require_once "footer.html";

?>

.htaccess:

DirectorySlash Off

RewriteEngine On
RewriteBase /

RewriteRule ^(.*)$ index.php [L]

header.html

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>

    $(document).on('click', "a", function(e){

        $.ajax({
            async: false,
            url: this.pathname,
            type: 'post',
            success: function(ret) {

                $("#content").html(ret);

            }
        });

        return false;
    });

</script>

<style>
    #content{
        border: 1px solid black;
    }
</style>

<div id="header">
    <a href="/">Home</a>
    <a href="/profile">Profile</a>
    <a href="/config">Configurations</a>
</div>

footer.html

<div id="footer">
    <audio controls>
        <source src="horse.ogg" type="audio/ogg">
        <source src="horse.mp3" type="audio/mpeg">
      Your browser does not support the audio element.
    </audio>
</div>

0 个答案:

没有答案