2016-03-14 182 views
1

將網站移動到運行apache 2.4的新服務器後,此網站不再有效並且出現500服務器錯誤。.htaccess在apache上重定向循環2.4

目前的.htaccess文件如下:通過僅僅改變

<div role="main"> 

     <?php 
      // Defualt page will always be home.html 
      $page = 'home'; 

      // Lets get pages based on user input 
      if (!empty($_GET['name'])) { 

       //Assign a variable to a sanitised version of the data passed in the URL 
       $tmp_page = basename($_GET['name']); 

       //If the file exists, update $page 
       if (file_exists("pages/{$tmp_page}.html")) 
        $page = $tmp_page; 

       //If the file does not exist, include our custom notfound page and don't run anymore code 
       elseif(!file_exists($tmp_page)){ 
        include("pages/notfound.html"); 
        exit; 
       } 
      } 

      // Include our default page declared above if no data is passed (no clicks on menu) 
      include("pages/$page.html"); 
      ?> 

    </div> 

我一直沒能解決這個問題:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule ^(.*) $1 [L] 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?name=$1 [L] 

在index.php文件處理的網址如下的.htaccess。我只是託管網站,所以理想情況下,我不想在未經設計師同意的情況下對網站進行更改。

+0

看看你的第一個條件/規則對...它基本上是說:如果請求實際上是現有的物理文件,然後重寫該文件。當然這是一個重寫循環... – arkascha

回答

1

你的第一條規則將文件重寫爲文件,這就是爲什麼你會得到重寫循環錯誤。

嘗試

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?name=$1 [L]