Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Web > Общие вопросы Web
Регистрация

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

Ответ
 
Опции темы
Старый 01.02.2014, 17:00   #1
Gorychev
ПрофессионалФорумчанин
 
Аватар для Gorychev
 
Регистрация: 08.03.2008
Адрес: галактика Млечный путь, окраина рукава Ориона, Солнечная система, планета Земля, дальше я покажу:)
Сообщений: 1,555
Репутация: 1159
По умолчанию Подмена url с помощью .htaccess

Ситуация такая, есть единая точка входа на сайт, вот .htaccess который сейчас используется:
Код:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /index.php [NC,L]

Тут все как обычно.
Задача. Допустим есть url
http://mysite.dev/asdasd/asdasd/adsasd/
нужно чтобы при изменении url на
http://mysite.dev/en/asdasd/asdasd/adsasd/
en вырезало и завернуло в гет параметр
пробую так:
Код:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteCond   %{REQUEST_URI} /en/.*
RewriteRule ^(.*)$ /index.php?lang=en [L,QSA]
RewriteRule ^.*$ /index.php [NC,L]

Что-то не работает. Я, не бог весть какой специалист по mod_rewrite.. Буду рад помощи. Сайт на zend движке, хотя думаю это не важно
__________________
Мой сайтик

Последний раз редактировалось Gorychev; 01.02.2014 в 17:06.
Gorychev вне форума   Ответить с цитированием
Старый 19.02.2014, 01:39   #2
vasiatka
Форумчанин
 
Аватар для vasiatka
 
Регистрация: 18.02.2014
Адрес: Пенза
Сообщений: 90
Репутация: 24
По умолчанию

К сожалению под рукой нет апача. Но, на сколько я помню, RewriteRule просто производит обработку по регулярному выражению. И ему просто по барабану, что получено на входе. При этом сначала отрабатывает RuleRewrite (соответствие регулярке), а затем RewriteCond. Поэтому вроде как смысла в вашем RewriteCond нету.


Код:

#url http://mysite.dev/en/asdasd/asdasd/adsasd/
RewriteEngine On

#Вход: en/asdasd/asdasd/adsasd/
RewriteRule ^en/(.*)$ $1?lang=en&%{QUERY_STRING}
#или такое правило, что тоже самое
#RewriteRule ^en/(.*)$ $1?lang=en [QSA]

#Если мне не изменяет память, то теперь получилось
#Выход: asdasd/asdasd/adsasd/
#и в %{QUERY_STRING} добавлен параметр lang

#далее ваш код должен отработать как обычно
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /index.php [NC,L]

Я, когда на апаче сидел, долго мучался. Возможно мои мучения кому-то пригодятся: Apache. Магия mod_rewrite. Здесь изложены мои потуги в изучении mod_rewrite. Точнее, то простота чего меня особо впечатлила Прочитайте, возможно, вы что-то проясните для себя
__________________
В бинарной системе счет ведут не по пальцам, а по кулакам.
Пенза - мой город - я из Пензы.
vasiatka вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
.htaccess работа с URL StivinKing PHP 3 01.06.2013 23:27
.htaccess пароль на URL Dexes Общие вопросы Web 11 04.04.2013 23:37
Подмена url-а когда переходят на сайт fludert Работа с сетью в Delphi 2 23.03.2011 09:04
htaccess и инключинг с помощью РНР Maxx PHP 11 13.01.2010 11:59
открыть с помощью Firefox заданный url и исполнить bat файл stayer Общие вопросы Delphi 2 26.10.2008 11:48


08:47.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru