Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: .htaccass
цитата
04/06/09 в 22:44
 ibiz
как сделать чтобы все страницы открывались со слэшем на конце?
тоесть пользователь набирает в строке браузера /page-130, надо чтобы автоматически открывалсь страница /page-130/ и при этом когда набирается /page-130/, никакого редиректа само на себя небыло??
цитата
04/06/09 в 23:02
 andreich
ХМ могу ошибаться но помойму это можно сделать настройкой апача
цитата
04/06/09 в 23:14
 Dr.Syshalt
Код:

RewriteEngine  on
RewriteCond    %{REQUEST_FILENAME}  -d
RewriteRule    ^(.+[^/])$           $1/  [R]


P.S. разумеется, будет работать только с физическими директориями.
цитата
04/06/09 в 23:30
 Simplex
Оффтопик: Dr.Syshalt: написал в аську тебе с вопросом, ответь плиз
цитата
04/06/09 в 23:40
 Dr.Syshalt
Оффтопик: Simplex писал:
Dr.Syshalt: написал в аську тебе с вопросом, ответь плиз


что-то не вижу ничего, попробуй запрос на авторизацию сделать сначала
цитата
05/06/09 в 00:07
 ibiz
Dr.Syshalt писал:

Код:

RewriteEngine  on
RewriteCond    %{REQUEST_FILENAME}  -d
RewriteRule    ^(.+[^/])$           $1/  [R]


P.S. разумеется, будет работать только с физическими директориями.


чот неработает icon_confused.gif
вообще директории не физические, а по такому правилу
RewriteRule ^page([0-9]+)/$ /index.php?p=$1 [L,NC]
цитата
05/06/09 в 09:04
 Corex
ibiz:
Тогда перед своим правилом пропиши вот в таком виде 1 строку из вышеуказанного правила:
Код:
RewriteRule ^(.+[^/])$ $1/ [R,L]
цитата
05/06/09 в 09:11
 ibiz
Corex писал:
ibiz:
Тогда перед своим правилом пропиши вот в таком виде 1 строку из вышеуказанного правила:
Код:
RewriteRule ^(.+[^/])$ $1/ [R,L]


все равно неработает... лезть в апач нет возможности, шаред хост icon_sad.gif
цитата
05/06/09 в 09:23
 ibiz
вот стал редиректить по этому правилу, но на физическую директорию
примерно так
http://localhost/6448 =>
http://localhost/Z:/home/localhost/site/6448/

а нужно так http://localhost/6448/
цитата
05/06/09 в 10:47
 Corex
ibiz:
Выложи тогда весь .htaccess или хотя бы ту часть, где все правила для mod_rewrite, а то так не угадаешь, но само правило для закрывающего слэша корректное и рабочее.
цитата
05/06/09 в 11:21
 ibiz
вот все правило
Код:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.+[^/])$ $1/ [R,L]
RewriteRule ^page([0-9]+)/$ /index.php?p=$1 [L,NC]
</IfModule>
цитата
05/06/09 в 11:41
 Corex
Вот так попробуй:

Код:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .+ - [L]
RewriteRule ^(.+[^/])$ $1/ [R,L]
RewriteRule ^page([0-9]+)/$ /index.php?p=$1 [QSA,L,NC]
</IfModule>
цитата
05/06/09 в 11:53
 ibiz
Corex писал:
Вот так попробуй:

Код:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .+ - [L]
RewriteRule ^(.+[^/])$ $1/ [R,L]
RewriteRule ^page([0-9]+)/$ /index.php?p=$1 [QSA,L,NC]
</IfModule>


редиректит вот сюда
"http://localhost/6448" => "http://localhost/Z:/home/localhost/site/6448/"
прямо жопа какая-то icon_cry.gif
цитата
05/06/09 в 12:14
 Corex
.htaccess и файл index.php лежат в корневой директории, в www? Или это типа субдомена site.localhost (судя по localhost/site/6448/)? index.php точно существует? Если index.php нет, то такое может быть.
Ну и правило в .htaccess рассчитано на запрос вида localhost/page6448/.

Это же всё в денвере, судя по всему. Создай отдельный виртуальный домен, туда положи .htaccess и index.php (или файл, который в правиле прописан вместо index.php) и всё будет работать.
цитата
05/06/09 в 12:24
 ibiz
попробовал на отдельном домене на шаред хостинге
в дире два файла, ничего лишнего
.htaccess
Код:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .+ - [L]
RewriteRule ^(.+[^/])$ $1/ [R,L]
RewriteRule ^page([0-9]+)/$ /index.php?p=$1 [QSA,L,NC]
</IfModule>


index.php
Код:

<?
echo 'p='.$p;
?>


ввожу в браузере
"http://domain.ru/page456456/" - все ок, результат "p=456456"

"http://domain.ru/page456456" => "http://domain.ru/home/www/htdocs/domain.ru/page456456/"
цитата
05/06/09 в 12:32
 Corex
Хм... Странно, у меня и локально и на шареде такое работает... Ну вот только такой вариант ещё пока в голову пришёл:

Код:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+[^/])$ $1/ [R,L]
RewriteRule ^page([0-9]+)/$ /index.php?p=$1 [QSA,L,NC]
</IfModule>


Тоже работает - проверил!
цитата
05/06/09 в 12:40
 ibiz
Corex писал:
Хм... Странно, у меня и локально и на шареде такое работает... Ну вот только такой вариант ещё пока в голову пришёл:

Код:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+[^/])$ $1/ [R,L]
RewriteRule ^page([0-9]+)/$ /index.php?p=$1 [QSA,L,NC]
</IfModule>


Тоже работает - проверил!


не работает... видимо что-то не то делаю icon_sad.gif
можешь в аське глянуть если есть свободная минутка?
цитата
05/06/09 в 13:40
 ibiz
Corex: помог, спасибо! smail54.gif


Эта страница в полной версии