我正在用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/
你能帮帮我吗?对于将来的信息,我需要整合多语种网站的概念。
由于
答案 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”并将其存储在服务器的根目录中。应该直接工作。