Перезапись мода: я хочу перенаправить все запросы на индексную страницу, если файл не существует (но не если файл является файлом php) - PullRequest
0 голосов
/ 29 апреля 2010

Прямо сейчас у меня есть такой файл .htaccess. Он отправляет всех на страницу индекса, если вы не хотите настоящий файл. Это своего рода то, что я хочу, но я не хочу, чтобы кто-либо имел доступ к файлу .php. Итак, вот что у меня есть:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f [NC]
RewriteRule ^(.*) /index.php [NC]

Но это то, что я хочу:

if(file_exists(request) && !request.endsWith(".php"))
    do not redirect request
else
    redirect to index page

Вот что я пробовал:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f [NC]
RewriteRule !(\.php)$ /index.php [NC]

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

1 Ответ

0 голосов
/ 29 апреля 2010

я думаю, что вам нужно tolook при пользовательском перенаправлении 404 (файл не найден), а не проверять, существует ли файл

...