1

我正在用 PHP 开发一个 Web 应用程序,我想刷新我的应用程序的一个部分。我发现一些帖子解释了如何通过传递到 URL 的一些参数来做到这一点,如下所示:

索引.php:

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

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

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

请问你能帮帮我吗 ?

为了您将来的信息,我需要整合多语言网站的概念。

谢谢

4

2 回答 2

0

The RewriteRule line in my code is a good pattern and will load the index.php file when someone is loading my website. So if someone loads http://mydomain.com/folder1/folder2/file, the file index.php?0=folder1&1=folder2&3=file&4=&5=&6=&7=&8=&9= will be loaded. Then in PHP you can switch on the $_GET parameters to load the right page:

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

        case 'login':
            {code}
            break;

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

You can paste my .htaccess file in a blank notepad, save it as ".htaccess" and store it in the root of you server. Should work directly.

于 2013-10-24T16:09:43.867 回答
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 参数。

这是你问题的第一部分。当您只想重新加载网页的一部分时,请使用带有 AJAX 的 JQuery,就像 Marek 之前评论的那样。

于 2013-10-24T15:24:33.110 回答