Перенаправить всю страницу домена в один файл - PullRequest
0 голосов
/ 25 января 2010

Я хочу перенаправить все страницы домена на одну страницу в том же домене, используя htaccess / mod_rewrite.

В основном, я хочу, чтобы любая страница, запрошенная для домена, возвращала удерживающую страницу [которая является index.php] на domain.com/

большинство моих попыток до сих пор приводят к ошибкам, поскольку они бросают сервер в цикл.

Заранее спасибо

ки

Ответы [ 4 ]

3 голосов
/ 25 января 2010

Вам нужно исключить пункт назначения, на который вы перенаправляете:

RewriteEngine on
RewriteRule !^index\.php$ /index.php [L,R=301]

Если вы просто хотите перенаправить запросы, которые не могут быть сопоставлены с существующими файлами в файловой системе, добавьте это условие:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !^index\.php$ /index.php [L,R=301]

Но вам лучше ответить 404 в этом случае.

2 голосов
/ 25 января 2010

Вот простая реализация:

RewriteEngine on
RewriteRule !\.(js|ico|gif|jpg|png|css|html)$ index.php

И немного более изощренный:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

Оба были взяты из Zend Framework Справочное руководство программиста Zend_Controller . Вот еще один полезный документ Модуль Apache mod_rewrite .

0 голосов
/ 25 января 2010

Спасибо всем,

все заработало, вот оно, может помочь другим:

RewriteRule! ^ (Index.php) |. (Js | ico | gif | jpg | png | css | mp3 | xml | swf) $ /index.php [L, R = 301]

ки

0 голосов
/ 25 января 2010

ISR, что это недавно здесь спрашивали - но я не могу найти q прямо сейчас.

Почему бы просто не настроить обработчик ошибок 404, чтобы он указывал на удерживающую страницу (и держать все остальное содержимое вне корня документа)

С

...