2011-07-22 82 views
0

好了,所以我有了噸的頁面的網站,我想創建一個PHP文件前每個人......這個工程great..here是我,代碼明智如何重構htaccess以允許主頁?

這裏是我的htaccess

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

這裏是我的index.php文件

$parts = explode('/', $_REQUEST['url']); 

switch ($parts[count($parts) - 1]) { 
    case 'restaurant': 
    include "pages/restaurant.php"; 
     break; 
    case 'retail': 
    include "pages/retail.php"; 
     break; 
     ....... 
     ....... 

} 

這個偉大工程,如果我訪問的URL http://someurl.com/restaurant在頁面適當的文件/ restaurant.php拉起。唯一的問題是主頁http://someurl.com當我訪問它,我得到一個:

Forbidden 

You don't have permission to access /structure on this server. 

是否有解決這一問題在.htaccess來解決這個問題的一種方法,我應該創建一個名爲也許在home.php文件頁面文件夾,或者我應該只是把主頁的內容在索引文件中的其他條件...任何想法

回答

1

你忘了指定一個默認開關大小寫?

switch ($parts[count($parts) - 1]) { 
case 'restaurant': 
include "pages/restaurant.php"; 
    break; 
case 'retail': 
include "pages/retail.php"; 
    break; 
default: 
include "pages/default_page.php"; 
    break; 
    ....... 
    ....... 
} 
+0

我甚至不能讓頁面....瀏覽器不會呈現什麼,如果有什麼 – Trace

+0

你不理解我,甚至不能得到.COM之後到php,因爲Forbidden 您無權訪問此服務器上的/結構。 – Trace

+0

@Tamer - 在.com eg.g'http:// www.example.com /' – LazyOne

0

你有在switch一個default聲明?我的賭注是你沒有。

1

1.使用此規則的地方現有的規則之前:

RewriteRule ^$ index.php?url=home [L] 

2.創建pages/home.php

3.添加到您的switch語句:

case 'home': 
include "pages/home.php"; 
    break; 

附:我不建議使用default:來處理主頁。 default:應該用於處理404頁面/未知頁面只有

+0

之後應該至少有斜槓因爲seo的原因,我不能這麼做......我需要someurl.com而不是somesite.com ?url = home – Trace

+0

@Tamer - 與您使用的語法完全相同 - 請參閱您自己的規則。如何搜索引擎優化對他們是好的,變得破碎/不好這個? – LazyOne

+0

對不起,我離開了一點 – Trace

0
DirectoryIndex index.php 

你有沒有在你的httpd.conf或.htaccess中的代碼?

好像您的默認文件沒有的index.php