Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Название темы: mod_rewrite etc.
Показать сообщение отдельно

Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Всем привет!
Вопрос следующий.
Проблема переадресации с помощью mod_rewrite.
имеется исходный url, например:
такой
http://www.example.com/index.php >хочется получить такой > http://www.example.com/
или
http://www.example.com/index.php?page10 >хочется получить такой > http://www.example.com/page10
или такой
http://www.example.com/index.php?xxx=yyyy&zzzz=wwww >хочется получить такой > http://www.example.com/xxx/yyyy/zzzz/wwww

или на худой конец такие:
http://www.example.com#xxx#yyyy#zzzz#wwww

Попытки решения:
1.

RewriteEngine on
RewriteBase /
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1

преобразует
http://www.example.com/xxx=yyyy&zzzz=wwww
в
http://www.example.com/index.php?xxx=yyyy&zzzz=wwww

Просто убирает индексный файл и знак вопроса из URL.

2.
Второй способ не работает:

RewriteEngine on
RewriteBase /

RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{REQUEST_URI} [A-Za-z0-9]*
RewriteRule ^([A-Za-z0-9]*)$ index.php?$1

RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{REQUEST_URI} [A-Za-z0-9]*#[A-Za-z0-9]*
RewriteRule ^([A-Za-z0-9]*)#?([A-Za-z0-9]*)$ index.php?$1=$2

RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{THE_REQUEST} [A-Za-z0-9]*#[A-Za-z0-9]*#[A-Za-z0-9]*
RewriteRule ^([A-Za-z0-9]*)#([A-Za-z0-9]*)#([A-Za-z0-9]*)$ index.php?$1=$2&$3

RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{THE_REQUEST} [A-Za-z0-9]*#[A-Za-z0-9]*#[A-Za-z0-9]*#[A-Za-z0-9]*
RewriteRule ^([A-Za-z0-9]*)#?([A-Za-z0-9]*)#?([A-Za-z0-9]*)#?([A-Za-z0-9]*)$ index.php?$1=$2&$3=$4

Не совсем понятно как сравнивать RewriteCond почему в данном примере сравнение не работает

3. Были и другие эксперименты но пока радостного мало
==================================================================

Основные сложности в том, что длинна адреса может меняться т.е.
от http://www.example.com/
до http://www.example.com/index.php?xxx=yyyy&zzzz=wwww (http://www.example.com/xxx/yyyy/zzzz/wwww)
и еще при использовании адресов типа http://www.example.com/xxx/yyyy/zzzz/wwww
браузер запрашивает файлы (css, img ...) при указании относительного адреса с базой для URL
http://www.example.com/xxx/yyyy/zzzz/wwww соотвественно http://www.example.com/xxx/yyyy/zzzz/
как лучше решить эту проблему в случае использования '/', можно использовать '#' но это не совсем то что надо.


Может знает стандартное решение данного вопроса. Буду благодарен, подскажите.

Благодарю за внимание!!!

Отправлено: 13:57, 29-07-2009 | #112

Название темы: mod_rewrite etc.