RewriteCondition rewriteRule Как сделать весь трафик прямым к одному файлу? - PullRequest
1 голос
/ 04 апреля 2011

Дорогие люди,
Представьте себе одностраничный сайт

RewriteCond %{HTTP_HOST} ^1pagesite.org$  
RewriteRule ^$ 1pagesite.php [L]

В настоящее время домашняя страница правильно отображает 1pagesite.php.

Однако, когда запрашивается другой файл, скажем, test.php, который действительно находится на сервере, показывает этот test.php !, в то время как я хотел бы указать ВСЕ и ЛЮБОЙ трафик на 1pagesite.php в настоящее время.Как это сделать, чтобы после представления этого домена не было другого файла, папки / файла или чего-либо еще, и все направлено на 1pagesite.php?

Большое спасибо за советы и предложения по решению этой головоломки.Ура, Сэм

Ответы [ 3 ]

2 голосов
/ 04 апреля 2011
RewriteRule ^.*(html|php)$ 1pagesite.php [L]

Примечание. При этом перенаправляются только запросы на страницы .html и .php

1 голос
/ 04 апреля 2011

Ваше перенаправление соответствует только ^$, то есть только корневой странице (пустая строка).

RewriteCond %{HTTP_HOST} ^1pagesite.org$  
RewriteRule ^.*$ 1pagesite.php [L]

Таким образом, каждый запрос будет перенаправлен на страницу 1pagesite.php (images, css, ... как сказал Сандер).

Если вам нужно отфильтровать контент, вы можете добавить

RewriteCond %{REQUEST_FILENAME} !^.*\.(css|jpg)$

, чтобы разрешить обслуживание файлов .css и .jpg из вашего каталога /. Это можно настроить для других файлов подкаталогов и т. Д. *

1 голос
/ 04 апреля 2011

Можете ли вы попробовать это правило:

RewriteCond %{HTTP_HOST} ^1pagesite.org$ [NC]
RewriteCond %{REQUEST_URI} !1pagesite.php$
RewriteRule \.(php|html)$ /1pagesite.php [R=302,L]

для перенаправления только страниц php и html на 1pagesite.php

...