RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L]
Чпу и якорь #
Возникла проблемка :) Использую на сайте чпу. .htaccess всё что var/var/var/... передаёт на index.php и я уже там разгребаю URL и беру всё что мне надо... Каким подходом можно заставить работать якоря var/var/var/#name ?
Первая мысля, это при нахождении (первым символом) # запускать небольшой JS скрипт, который будет прокручивать страничку к нужному месту.
Не понятно в чем проблема. Если я все верно понял, то браузер видит этот якорь в адресе и, по-идее, должен сам прокрутить страницу к нему.
Цитата:
Первая мысля, это при нахождении (первым символом) # запускать небольшой JS скрипт, который будет прокручивать страничку к нужному месту.
Идея понятна вроде как... Но если мы находимся на тойже страничке где и якорь, то всё равно она перезагрузится :confused:
Цитата:
Не понятно в чем проблема. Если я все верно понял, то браузер видит этот якорь в адресе и, по-идее, должен сам прокрутить страницу к нему.
Нет не переносит :mad: всё URI уходит на index.php
Цитата: Boom.Olezka
Нет не переносит :mad: всё URI уходит на index.php
Что значит уходит? Что в адресной строке браузера?
Цитата: Boom.Olezka
Нет не переносит :mad: всё URI уходит на index.php
Неплохо бы было глянуть на ваше правило...
Код:
php_value zend.ze1_compatibility_mode 0
RewriteEngine on
RewriteRule !\.(js|ico|gif|jpg|png|css|doc|swf|html|htm|mp3)$ index.php
RewriteEngine on
RewriteRule !\.(js|ico|gif|jpg|png|css|doc|swf|html|htm|mp3)$ index.php
Код:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,QSA]
Взял его из статьи, поэтому слабо врубаюсь как точно оно работает :) Что пропускает что нет? :mad:
shaelf, попробую написать правило как у тебя... Если поможет, то отпишу тут :) :rolleyes:
shaelf, написал твоё правило :) С такими правилами у тебя работает :confused:
Если # в адресе пристутствует, значит проблема в документе, в котором просто нет этого якоря. А с этим правилом она исчезнуть не может.
Поковыряю... Посмотрим :) Отпишусь...
С правилом
Цитата: k0t
С правилом
И строкой http://localhost/news/page1/#page2, $_SERVER['REQUEST_URI'] возвращает /news/page1/
Код:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L]
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L]
И строкой http://localhost/news/page1/#page2, $_SERVER['REQUEST_URI'] возвращает /news/page1/
Какое это имеет отношение к браузеру и работе якорей?
Цитата: Nixus
Какое это имеет отношение к браузеру и работе якорей?
Это к заявлению что якорь уходит в URI.
Цитата: k0t
Это к заявлению что якорь уходит в URI.
Ё-мое... Как это влияет на работу якорей? Никак, абсолютно. Якори обрабатывает браузер, а не сервер.
Не будь так категоричен. В моём случае якорь обрабатывает сервер, т.к. все запросы окромя статики перенаправляются на индекс, а не переписывается урла.
Цитата: shaelf
Не будь так категоричен. В моём случае якорь обрабатывает сервер, т.к. все запросы окромя статики перенаправляются на индекс, а не переписывается урла.
Буду катигоричен. Если урл остается неизменным для браузера (а он не может изменится согласно приведенным правилам), то якоря продолжат работу, т.к. их обрабатывает браузер.