Форум программистов, компьютерный форум, киберфорум
Наши страницы
Apache, htaccess
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
litvinovanton
0 / 0 / 0
Регистрация: 18.02.2013
Сообщений: 7
1

Элементарный ЧПУ

18.02.2013, 14:11. Просмотров 835. Ответов 8
Метки нет (Все метки)

Помогите, пожалуйста. Уже мозги кипят.

Структура файлов сайта простейшая - всё хранится в корневом каталоге:
index.php
page1.php
page2.php

Задача: прописать настройки в htaccess, чтобы:

1. Вместо адреса "http://mysite.ru/index.php" в адресной строке посетители видели "http://mysite.ru"
2. Скрывалось расширение файла. Например, вместо "http://mysite.ru/page1.php" в адресной строке посетители видели "http://mysite.ru/page1".

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

Добавлено через 15 минут
как скрыть index.php уже нашёл))

Код
# скрываем index.php
RewriteCond %{REQUEST_URI} ^(.*)index\.php$
RewriteRule ^ %1 [R=301,L]

осталось, понять, как скрыть расширения файлов...
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.02.2013, 14:11
Ответы с готовыми решениями:

ЧПУ
Здравствуйте! Есть проблема по настройке ЧПУ на сайте.. нужно сделать чтобы ссылка вида:...

ЧПУ
Здравствуйте. В .htaccessпишу - RewriteRule ^pr$ pr.php но тут конечно у меня файл...

ЧПУ
нужно из example_com/******** сделать example_com/file.php?id=******** Примечание: ******** - это...

ЧПУ
Доброго времени. Уважаемые помогите сделать ЧПУ через .htaccess для такого url. ...

GET и ЧПУ
Здравствуйте! На моем сайте есть чпу, через .htaccess ссылки вида home.html превращает в...

8
SFED
119 / 119 / 32
Регистрация: 09.07.2011
Сообщений: 203
18.02.2013, 14:12 2
Как-то так:
RewriteRule ^(([^/]+/)*[^.]+)$ /$1.php [L]
0
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16773 / 6659 / 871
Регистрация: 12.06.2012
Сообщений: 19,898
Завершенные тесты: 1
18.02.2013, 14:15 3
Как-то так..
Код
RewriteRule ^.*?([-_A-z0-9]+)\.php$ http://site.ru/$1/ [R=301,L,QSA]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ $1.php [L,QSA]
0
litvinovanton
0 / 0 / 0
Регистрация: 18.02.2013
Сообщений: 7
18.02.2013, 14:19  [ТС] 4
Цитата Сообщение от SFED Посмотреть сообщение
Как-то так:
Код
RewriteRule ^(([^/]+/)*[^.]+)$ /$1.php [L]
- попробовал. Не работает. При попытке зайти на сайт выдаёт ошибку: нет такой странички...


Этот код выдаёт ошибку:
Код
# скрываем index.php
RewriteCond %{REQUEST_URI} ^(.*)index\.php$
RewriteRule ^ %1 [R=301,L]
# скрываем расширения .php
RewriteRule ^(([^/]+/)*[^.]+)$ /$1.php [L]
Этот код нормально скрывает index.php, но вторую задачу не решает:
Код
# скрываем index.php
RewriteCond %{REQUEST_URI} ^(.*)index\.php$
RewriteRule ^ %1 [R=301,L]
# скрываем расширения .php
# RewriteRule ^(([^/]+/)*[^.]+)$ /$1.php [L]
0
18.02.2013, 14:19
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16773 / 6659 / 871
Регистрация: 12.06.2012
Сообщений: 19,898
Завершенные тесты: 1
18.02.2013, 14:27 5
Цитата Сообщение от litvinovanton Посмотреть сообщение
[^.]+
точку проэкранировать надо: [^\.]+

Добавлено через 1 минуту
правда смысла с этого не вижу.. "любой символ до точки" - так если точки нет, смысл с такой проверки?
0
litvinovanton
0 / 0 / 0
Регистрация: 18.02.2013
Сообщений: 7
18.02.2013, 14:34  [ТС] 6
На данный момент у меня код такой:
Код
## Страница не найдена 404
ErrorDocument 404 http://mysite.ru
## Доступ запрещен 403
ErrorDocument 403 http://mysite.ru
## Требуется авторизация 401
ErrorDocument 401 hhttp://mysite.ru
## Ошибка в работе сервера 500
ErrorDocument 500 http://mysite.ru

## запрет листинга файлов
options -Indexes

# включаем модуль
RewriteEngine on

# скрываем index.php
RewriteCond %{REQUEST_URI} ^(.*)index\.php$
RewriteRule ^ %1 [R=301,L]

# скрываем расширения .php
RewriteRule ^.*?([-_A-z0-9]+)\.php$ http://mysite.ru/$1/ [R=301,L,QSA]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ $1.php [L,QSA]
В итоге при попытке зайти по ссылке http://mysite.ru/page1.php приходит ответ сервера Location: http://mysite.ru/page1/. Нужная страничка не открывается, а я снова попадаю на главную http://mysite.ru.
В чём проблема?
0
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16773 / 6659 / 871
Регистрация: 12.06.2012
Сообщений: 19,898
Завершенные тесты: 1
18.02.2013, 14:39 7
Вообще должно работать..
Цитата Сообщение от litvinovanton Посмотреть сообщение
Нужная страничка не открывается, а я снова попадаю на главную
а что пишет?
0
litvinovanton
0 / 0 / 0
Регистрация: 18.02.2013
Сообщений: 7
18.02.2013, 15:33  [ТС] 8
при обращении по адресу mysite.ru/page1.php
сервер отвечает:

HTTP/1.1 301 Moved Permanently
Server: nginx/1.0.6
Date: Mon, 18 Feb 2013 10:48:10 GMT
Content-Type: text/html; charset=iso-8859-1
Connection: keep-alive
Location: http://mysite.ru/page1/
И при этом на экране отображается главная индексная страница сайта. На page1 вообще не пускает ни по адресу mysite.ru/page1.php ни по mysite.ru/page1/.

Добавлено через 41 минуту
Всем спасибо!
Поэкспериментирую, сформулирую конкретную проблему и начну новую тему...
0
Илья Федин
Бог живет в /root
884 / 350 / 1
Регистрация: 12.08.2012
Сообщений: 4,401
Записей в блоге: 5
18.02.2013, 15:44 9
litvinovanton,
Код
DirecoryIndex index.php
Options +MultiViews
0
18.02.2013, 15:44
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.02.2013, 15:44

mod_rewrite ЧПУ
Приветствую. Понимая, что подобных тем тьма, не хотел создавать новую но времени у меня нет особо...

Настройка ЧПУ
Здравствуйте. Есть сайт на html. Помогите настроить .htaccess для него. Нужно чтобы ссылки по...

Сделать ЧПУ
Имеется сайт с подобными ссылками, которые нужно заменить на: /home.php(html) -> /home...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.