Помощь

Как скрыть расширение .php в .htaccess? (Как скрыть расширение .php в .htaccess?)

3 8
user avatar
8 лет назад
Сообщений: 36
8 лет назад
Допустим есть ссылка domen.ru/topor.php(не только одну страницу, а весь сайт).
Я хочу что бы она была доступно только по domen.ru/topor, а когда пользователь введет вручную domen.ru/topor.php перекинула бы на страницу с ошибкой 404.

Как это сделать?
Ответ на: Artsem · 8 лет назад
“Допустим есть ссылка domen.ru/topor.php(не только одну страницу, а весь сайт).<br />Я хочу что бы она была доступно только по domen.ru/topor, а когда пользователь введет вручную domen.ru/topor.php п...”
user avatar
8 лет назад
Сообщений: 36
8 лет назад
ZKolyaNZ,

Не работает этот код, когда пытаюсь загрузить domen.ru/topor пишет ошибка 404
Ответ на: Artsem · 8 лет назад
“<b>ZKolyaNZ</b>,<br /><br />Не работает этот код, когда пытаюсь загрузить domen.ru/topor пишет ошибка 404”
user avatar
14 лет назад
Сообщений: 91
8 лет назад
Artsem,
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\\\\.php -f
RewriteRule ^(.*)$ $1.php
Ответ на: serega393 · 8 лет назад
“<b>Artsem</b>,<br />RewriteEngine on<br />RewriteCond %{REQUEST_FILENAME} !-d<br />RewriteCond %{REQUEST_FILENAME}\\\\.php -f<br />RewriteRule ^(.*)$ $1.php”
user avatar
8 лет назад
Сообщений: 36
8 лет назад
serega393,

Тоже не работает у меня сейчас установлен вот такой:

# Редирект включен
RewriteEngine on

# Базовые редиректы
RewriteRule ^(.+)\\\\.php$ /$1 [R,L]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(([^/]+/)*[^.]+)$ /$1.php [L]

Но он работает в двух видах одновременно как с domen.ru/topor так и с domen.ru/topor.php

А мне нужно что бы только domen.ru/topor работал, а domen.ru/topor.php уходило в 404(не работал)
Ответ на: Artsem · 8 лет назад
“<b>serega393</b>,<br /><br />Тоже не работает у меня сейчас установлен вот такой:<br /><br /># Редирект включен<br />RewriteEngine on<br /><br /># Базовые редиректы<br />RewriteRule ^(.+)\\\\.php$ /$1...”
user avatar
13 лет назад
Сообщений: 1859
8 лет назад
Это называеться ЧПУ (Человеко понятный урл)

Цитата: ArtsemНо он работает в двух видах одновременно как с domen.ru/topor так и с domen.ru/topor.php
Все правильно, теперь в самом файле ты должен запретить прямой вызов файла

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

define ("qw", "y");
include (file);


в файле проверкаа
if(!defined("qw")) die;
скрипт

P.S. В моих 4 и 5 скрипте так сделано. там можешь посмотреть на пример в реале как делать запрет вызова файла с адресной строки. Ну и после проверки что вызов с адресной строки ты можешь писать что делать, у меня стоит exit() но ты можешь еще после добавить редирект на твою заглушку 404
Ответ на: Pretorian · 8 лет назад
“Это называеться ЧПУ (Человеко понятный урл) <br /><br /><!--QuoteBegin Artsem --><div class=\"title_quote\">Цитата: Artsem</div><div class=\"quote\"><!--QuoteEBegin-->Но он работает в двух видах однов...”
user avatar
12 лет назад
Сообщений: 66
8 лет назад
Цитата: ArtsemТоже не работает у меня сейчас установлен вот такой:

Попробуй так!

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

# всё что не касается файлов и не имеет точки в названии, добавлять в конце слеш
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)\\\\.(.*){1,5}$
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]

# делает редирект для *.php)
RewriteCond %{REQUEST_URI} ^(.*)\\\\.php$
RewriteRule ^(.*)\\\\.php$ $1\\\\/ [L,R=301]

# убираем индексы
RewriteCond %{REQUEST_URI} ^(.*)index.php(.*)$
RewriteRule ^(.*)index.php(.*)$ $1$2 [L,R=301]

# site.ru/*/ открывает как site.ru/*.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\\\\.php -f
RewriteRule ^(.*)(\\\\/)$ %{REQUEST_FILENAME}.php/ [L]

</IfModule>
Ответ на: swerg · 8 лет назад
“<!--QuoteBegin Artsem --><div class=\"title_quote\">Цитата: Artsem</div><div class=\"quote\"><!--QuoteEBegin-->Тоже не работает у меня сейчас установлен вот такой:<br /><!--QuoteEnd--></div><!--QuoteE...”
user avatar
12 лет назад
Сообщений: 66
8 лет назад
Цитата: ZKolyaNZа теперь ребятки подумайте в чем разница между прямым запуском апачевского реврайта и через модуль апача , правильно *правила хостинга*

У меня работает!На vds!
Ответ на: swerg · 8 лет назад
“<!--QuoteBegin ZKolyaNZ --><div class=\"title_quote\">Цитата: ZKolyaNZ</div><div class=\"quote\"><!--QuoteEBegin-->а теперь ребятки подумайте в чем разница между прямым запуском апачевского реврайта и...”
user avatar
13 лет назад
Сообщений: 1859
8 лет назад
Цитата: swergНа vds!
не в этом дело. а в ПО сервера, будь то впс, вдс, виртуальный хостинг или даже локальный сервер. Все зависит от ПО сервера апач.
Ответ на: Pretorian · 8 лет назад
“<!--QuoteBegin swerg --><div class=\"title_quote\">Цитата: swerg</div><div class=\"quote\"><!--QuoteEBegin-->На vds!<!--QuoteEnd--></div><!--QuoteEEnd--><br />не в этом дело. а в ПО сервера, будь то в...”
Ответить