2015-10-14 73 views
1

我無法讓我的mod_rewrite工作,以便鏈接從http://domain.com/page?home.phphttp://domain.com/homePHP包括頁面與mod_rewrite隱藏獲取變量問題

當輸入http://domain.com/時,主頁是正確包含的。

當輸入http://domain.com/404http://domain.com/anythinghere正確包含404頁面。

當進入http://domain.com/home一個錯誤500上升,我得到這個錯誤:File does not exist: /var/www/html/domain/Dev/home

爲什麼這個不行?

我的項目如下:

目錄結構:

Dev/ 
    .htaccess 
    index.php 
    menu.php 
    pages/ 
     404.php 
     home.php 
    resources/ 
     css/ 
      core.css 
     fonts/ 

的的.htaccess:

Options +FollowSymLinks 
RewriteEngine On 

RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 

RewriteRule ^(\d+)*$ ./index.php?page=$1 

在index.php:

<?php 

if (!isset($_GET['page'])) 
    $_GET['page'] = 'home'; 

$pages = array('home'); 
$page = $_GET['page']; 

include('menu.php'); 

if(in_array($page, $pages)) 
{ 
    include('pages/' . $page . '.php'); 
} 
else 
{ 
    include('pages/404.php'); 
} 

?> 

</body> 
</html> 

回答

1

重寫應成爲:

RewriteRule ^([^/]+)$ /index.php?page=$1 [L] 
+0

你確實是正確的謝謝,雖然我把一點infin /index.php ...因爲我不工作在根文件夾中,但同樣相同。 RewriteRule ^([^ /] +)$ ./index.php?page=$1 [L] – user3828657