Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как правильно сформировать рег. выражение под мой сайт
 
 автор: Diman   (21.02.2010 в 16:05)   письмо автору
 
 

Хочется иметь красивые ссылки на моем сайте. Но я очень плох с регулярными выражениями.
Мой сайт photo-samara.ru или www.photo-samara.ru. Кое-что делаю, но чего-то нехватает. Помогите пожалуйста
Возьмем пока первый уровень. Остальные подобные

### Правило для страниц первого уровня
RewriteRule ^([a-z_A-Z_0-9\-]+)$ index.php?link=$1

Это наверное больше подойдет под main.ru, а как быть с "-"?

  Ответить  
 
 автор: heed   (21.02.2010 в 16:42)   письмо автору
 
   для: Diman   (21.02.2010 в 16:05)
 

>RewriteRule ^([a-z_A-Z_0-9\-]+)$

это будет срабатыввать если будет просто запрос как-бы папки с именем например Folder_1-0? и только если после этого нет например / или ещё чего.

^([a-z_A-Z0-9\-]+)/?$
сопостовляется с REQUEST_URI без знака вопроса и последующей QUERY_STRING, если такие имеются

Например запрос был "GET /dir/file.php?z=1&x=2"
может сопоставляться строка /dir/file.php , или dir/file.php или просто file.php
зависит от того где лежит это правило, или от того что записано в предшевствующей диррективе RewriteBase , и ещё от того что вообще бывает в apache с модулем mod_rewrite.
Hostname в RewriteRule не проверяется.

  Ответить  
 
 автор: Diman   (21.02.2010 в 23:24)   письмо автору
 
   для: heed   (21.02.2010 в 16:42)
 

Как мне сделать красивые ссылки под мой сайт, если все страницы практически открываются как photo-samara.ru/index.php?link=##
Пишу в .htaccess

RewriteEngine on       #Включаем Rewrite Engine

### Правило для страниц первого уровня, например photo-samara.ru/

RewriteRule ^([a-z_A-Z0-9\-]+)/$ index.php?link=$1
RewriteRule ^([a-z_A-Z0-9\-]+)/$ index.php?link=$1


В главном index.php пишу
 if (isset($_GET['link']))
    {
    $link = $_GET['link'];
    }


Что не так, подскажите пожалуйста

  Ответить  
 
 автор: heed   (21.02.2010 в 23:59)   письмо автору
 
   для: Diman   (21.02.2010 в 23:24)
 

а что не так ?
Options +FollowSymlinks    
# бывает выключено
RewriteEngine On
RewriteBase /

RewriteRule ^([a-z_A-Z0-9\-]+)/?$ index.php?link=$1 [L]

этого бывает достаточно чтобы по запросу http:/site/dir/ был вызван index.php?link=dir
, если , сервер вообще apache и в нём есть модуль mod_rewrite
, если FollowSymlinks включено или если позволяет включать так дирректива AllowOverride в конфигах
, и если я нигде не опечатался ;)
A так, найдите что-нибудь почитать по mod_rewrite RewriteRule RewriteCond
Но если в браузере будет http:/site/dir/ а на странице картинка src="1.gif" ,
то браузер запросит ещё и картинку http:/site/dir/1.gif

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования