Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.03.2013, 22:26   #1
hon
Форумчанин
 
Регистрация: 08.06.2011
Сообщений: 693
По умолчанию Как сделать ЧПУ на сайте с русским языком через .htaccess

Такая задача: нужно сделать ЧПУ на сайте.
Надо, при запросах типа:
  • mysite.ru/контакты
  • mysite.ru/полезные_ссылки
  • и т.д.
открывались страницы: mysite.ru/index.php?id=контакты, mysite.ru/index.php?id=полезные ссылки и т.д.
Но нужно, чтобы при запросах:
  • mysite.ru/объекты
  • mysite.ru/admin.php
  • mysite.ru/favicon.ico
Открывались именно эти файлы, т.е. эти страницы исключались из ЧПУ.

Не могу реализовать исключения. Наработки:
Код:
RewriteEngine on
RewriteRule ^([a-z0-9]+)/? index.php?id=$1 [QSA,L]
hon вне форума Ответить с цитированием
Старый 27.03.2013, 03:26   #2
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

А картинки, js, css файлы у тебя лежат в папкe с красивым _русским_ названием "объекты"?

http://www.mysite.ru/объекты/js/myscript.js
http://www.mysite.ru/объекты/css/mycss.css
или всё-таки
http://www.mysite.ru/js/myscript.js
http://www.mysite.ru/css/mycss.css
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Старый 27.03.2013, 17:32   #3
hon
Форумчанин
 
Регистрация: 08.06.2011
Сообщений: 693
По умолчанию

Цитата:
Сообщение от Johnatan Посмотреть сообщение
А картинки, js, css файлы у тебя лежат в папкe с красивым _русским_ названием "объекты"?
Они лежат так:
mysite.ru/css.css
mysite.ru/js.js
mysite.ru/images/gorod1.jpg.

Кстати, а можно еще сделать игнор папки images?
hon вне форума Ответить с цитированием
Старый 27.03.2013, 21:32   #4
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

много игноров имхо.
Как насчёт

Код:
RewriteEngine on
RewriteBase /
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# otherwise forward it to index.php
RewriteRule . index.php
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Старый 28.03.2013, 20:35   #5
hon
Форумчанин
 
Регистрация: 08.06.2011
Сообщений: 693
По умолчанию

Не работает. 404 выдает
Код:
# ***** Страницы ошибок *****
ErrorDocument 403 /403.html
ErrorDocument 404 /404.html

# ***** ЧПУ *****
# Do not remove this line or mod_rewrite rules and search engine friendly URLs will stop working
RewriteBase /
Options All
#Options -Indexes

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# otherwise forward it to index.php
RewriteRule . /index.php

php_value max_file_uploads 10
php_value upload_max_filesize 5M
php_value post_max_size 60M

# ***** Кодировка *****
# Кодировка по-умолчанию -- UTF-8
AddDefaultCharset UTF-8

<Files config.php> 
  deny from all 
</Files>
Две директивы после комментария "Do not remove this line or..." были установлены по умолчанию при регистрации домена.
hon вне форума Ответить с цитированием
Старый 29.03.2013, 20:16   #6
hon
Форумчанин
 
Регистрация: 08.06.2011
Сообщений: 693
По умолчанию

Проблема решена самостоятельно.
Код:
RewriteRule ^([a-z0-9]+)/$ /index.php?id=$1 [L]
Русские имена сделаю потом.
Johnatan, спасибо, но я не собирался делать точки в названии страниц, так что мой фильтр подходит.
hon вне форума Ответить с цитированием
Старый 29.03.2013, 21:05   #7
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

Русские имена сделаю потом.
Ваша проблема не решена, она просто отложена.
Точки в названии страниц не при чём. Точка в RewriteRule . index.php значит лишь, что ВСЁ (русские и латинские буквы) что следует после домена нужно передавать в index.php в качестве параметра
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
стеммер Портера и проблема с русским языком CodeNOT PHP 3 27.02.2013 16:07
сделать видеочат на сайте. Хочу сделать но не знаю как.. Shaman-King Свободное общение 12 14.01.2013 00:22
Проблема с русским языком Dimazzzzzz Python 0 06.05.2012 18:32
Ошибка с русским языком! Liza Общие вопросы Delphi 6 02.04.2009 11:15