刷新网页的单个部分而不传递参数

时间:2013-10-24 14:16:51

标签: php multilingual partial-page-refresh

我正在用PHP开发一个Web应用程序,我想刷新我的应用程序的一部分。我发现了一些帖子,它解释了如何通过一些参数传递到URLlike中:

的index.php:

if ((isset($_GET['page'])) && (isset($authorizedPage[$_GET['page']]))) {
    require_once ($authorizedPage[$_GET['page']]);
} else {
    require_once ('./home.php');
}

因此,网址http://example.com/index.php?page=login 会显示我的登录页面而不会重新加载我的index.php ...到目前为止还可以。

但我的问题是如何在不传递URL中的参数的情况下获得相同的行为。这意味着如果我想显示登录页面,我将拥有以下URL http://example.com/login/

你能帮帮我吗?

对于将来的信息,我需要整合多语种网站的概念。

由于

2 个答案:

答案 0 :(得分:0)

我认为你想要改变人们在你网站上加载页面的方式,不是吗?这样人们就可以加载例如example.com/login/和example.com/faq/而不是example.com?page=login和example.com?page=faq。

您应该在服务器根目录中的.htaccess文件中使用mod_rewrite。有关文档,请参阅http://httpd.apache.org/docs/current/mod/mod_rewrite.html

我使用代码

<IfModule mod_rewrite.c>
    Options +FollowSymlinks -MultiViews
    RewriteEngine On

    RewriteRule ^([^/]*)/?([^/]*)/?([^/]*)/?([^/]*)/?([^/]*)/?([^/]*)/?([^/]*)/?([^/]*)/?([^/]*)/?$ index.php?0=$1&1=$2&2=$3&3=$4&4=$5&5=$6&6=$7&7=$8&8=$9 [L,QSA]

</IfModule>

在我的.htaccess文件中将所有请求传递给我的index.php文件。 url中的每个文件夹都是GET参数。

这是你问题的第一部分。如果您只想重新加载网页的一部分,请使用JQuery和AJAX,就像Marek先前评论过的那样。

答案 1 :(得分:0)

我的代码中的RewriteRule行是一个很好的模式,当有人加载我的网站时会加载index.php文件。因此,如果有人加载http://mydomain.com/folder1/folder2/file,则会加载文件index.php?0=folder1&1=folder2&3=file&4=&5=&6=&7=&8=&9=。然后在PHP中,您可以打开$ _GET参数来加载右页:

<?php
    switch ($_GET['0']) {
        case 'faq':
            {code}
            break;

        case 'login':
            {code}
            break;

        default:
            {code of you home page}
            break;
    }
?>

您可以将我的.htaccess文件粘贴到空白的记事本中,将其另存为“.htaccess”并将其存储在服务器的根目录中。应该直接工作。