2013-10-24 21 views
1

我正在PHP中開發一個Web應用程序,我想刷新我的應用程序的單個部分。我發現一些職位,說明如何做到這一點與一些參數傳遞到URLlike如下:在不傳遞參數的情況下刷新網頁的單個部分

的index.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會顯示我的登錄頁面無需重新加載我的索引。 PHP ...到目前爲止沒有問題。

但我的問題是更多如何具有相同的行爲,而不需要在URL中傳遞參數。這意味着如果我想顯示登錄頁面,我將有以下URL http://example.com/login/

請問您能幫我嗎?

爲了您將來的信息,我將需要整合多語言網站的概念。

感謝

+1

使用'POST'而不是'GET'。 – LuigiEdlCarno

+0

你可以使用它沒有問題.. – HackerGK

+0

感謝您的迴應,但我不明白我將如何使用POST在我的錨將調用[http://XXXXXX.com/login/]或[http:// XXXXXX.com/home/]或[http://XXXXXX.com/anotherPage/] – user2915776

回答

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文件。網址中的每個文件夾都將是一個GET參數。

這是您問題的第一部分。當你想重新加載你的網頁的一部分時,像使用AJAX一樣使用JQuery,就像Marek早些時候評論的那樣。

+0

感謝您的回覆,我認爲這有點複雜。但是你是對的,我想改變人們加載頁面的方式:D。無論如何,這是一個很好的模式嗎? – user2915776

+0

看到我的下一個答案(評論會太長) – redelschaap

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」,並將其存儲在根你的服務器。應該直接工作。

+0

好的謝謝,這是明確和有益的。我會看看我的提供者,知道我是否可以更改mod_rewrite。 – user2915776

+0

不客氣。大多數託管服務提供商默認打開mod_rewrite。行''檢查並避免錯誤。如果它工作,mod_rewrite模塊打開,否則你應該聯繫你的提供者。 – redelschaap

相關問題