Как мне реструктурировать htaccess, чтобы учесть домашнюю страницу? - PullRequest
0 голосов
/ 23 июля 2011

Хорошо, у меня есть сайт с тоннами страниц, и я хочу создать php-файл для каждого ... это прекрасно работает ... вот что у меня есть, код мудрый

Вот мой 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, правильный файл в pages / restaurant.php подтягивается. Единственная проблема - домашняя страница http://someurl.com, когда я посещаю ее, я получаю:

Forbidden

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

Есть ли способ исправить это в .htaccess для решения этой проблемы, и если я создам файл, который может называться home.php, в папке страниц, или я должен просто поместить содержимое домашней страницы в индексный файл в еще условие ... любые идеи

Ответы [ 4 ]

1 голос
/ 23 июля 2011

1. Используйте это правило где-то перед существующими правилами:

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

2. Создать pages/home.php

3. Добавьте это в ваш оператор switch:

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

P.S. Я не рекомендую использовать default: для обработки домашней страницы. default: следует использовать для обработки 404 страниц / неизвестных страниц ТОЛЬКО .

1 голос
/ 23 июля 2011

Вы забыли указать регистр переключения по умолчанию?

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 голосов
/ 23 июля 2011
DirectoryIndex index.php

У вас есть этот код в вашем httpd.conf или .htaccess?

Кажется, что ваш файл по умолчанию не index.php

0 голосов
/ 23 июля 2011

У вас есть default утверждение в этом switch? Держу пари, что нет.

...