Вход

Просмотр полной версии : Модреврайт. Вопрос


Nicca
12.02.2008, 01:52
Как сделать чтобы ссылка вида http://site.com/file.php отображалась как http://site.com/file/


Пробовал так:
^auth/$ auth.php [QSA]
Не выходит.. Почему? (ЕРР 404)

^auth$ auth.php [QSA]
А так http://site.com/file
грузит нормально.

Так как добавить правильно слеш в конец?

Isis
12.02.2008, 02:23
.htaccess

RewriteEngine on
RewriteRule ^([a-Z0-9]+)/$ $1.php

Nicca
12.02.2008, 02:34
RewriteRule ^(auth_form)/$ $auth_form.php

Без слеша работает а с лешем ошибка 404
Не могу понять что за х...я

Isis
12.02.2008, 02:41
Че ты делаешь?
Мое правило пиши

Nicca
12.02.2008, 02:46
А какая разница между тем что я написал и Вы?

Isis
12.02.2008, 02:52
RewriteRule ^([a-Z0-9]+)/$ $1.php

RewriteRule ^(auth_form)/$ $auth_form.php

Считайте по буквам

Nicca
12.02.2008, 02:57
1. Ваш код не работает. Пишет Internal Server Error (Это уже лучше))
Хочу разобраться в рег. выражении:
^([a-Z0-9] - обозначает клас допустимых символов.
+ -???
Почему неправильный мой вариант?

Nicca
12.02.2008, 02:59
^([a-Z0-9] на ^([a-z0-9] - Internal Server Error уже нет
Но все же: со слэшом страницу не грузит а без - страница грузится

Isis
12.02.2008, 03:11
Я не даю не рабочий код, я сам проверил

Nicca
12.02.2008, 03:16
Ну а можете его хоть чуть-чуть обьяснить?
И почему например выдает ошибку на
RewriteRule ^([a-z_]{9})/$ $auth_form.php

Isis
12.02.2008, 03:34
Потому что у тебя запись неверная

http://www.opennet.ru/docs/RUS/mod_rewrite/

krypt3r
12.02.2008, 10:12
RewriteRule ^([a-zA-Z0-9]+)/*$ $1.php
Вот вполне рабочий вариант, работает как со слешем, так и без оного. Тока что проверено на апаче. В имени файла могут содержаться символы a-z, A-Z, 0-9, что указано в квадратных скобках. имя файла состоит из одного или более символов, на что указывает модификатор "+". Выражение берется в круглые скобки, чтобы далее использовать найденное как $1. То, что у вас написано - $auth_form - чушь какая-то. Шаблону $1 соответствует [a-zA-Z0-9]+. В конце в моем примере стоит /*, что означает ноль или более символов слеша.

Nicca
12.02.2008, 10:49
Спасибо. Разобрался

Nicca
12.02.2008, 23:41
RewriteRule ^([a-z]+)/*$ $1.php

http://www.site.com/test/
на сервере работает нормально а на локоальном хосте со слешем в конце не хочет. Пишет файл не найден
Почему?

blackybr
12.02.2008, 23:52
все отлично работает, не знаю что у вас за хост)

RewriteRule ^([a-z]+)/?$ $1.php [L]

Nicca
12.02.2008, 23:58
Apache HTTP Server 1.3.33

RewriteRule ^([a-z]+)/?$ $1.php [L]

Блин и по-Вашему пробовал. Со слешем пишет 404 ошибку. А без - нормально.

blackybr
13.02.2008, 01:42
подкючен ли сам модуль рерайта к апачу? ну не знаю пропиши еще

RewriteEngine On
Options +FollowSymLinks


читай статью мою в конце концов)

Isis
13.02.2008, 01:44
http://forum.antichat.ru/thread27498.html

Nicca
13.02.2008, 02:04
Так в интернете у меня работает! А в локале нет.
Повторяю - не работает именно только когда добавляешь слеш в конец, тоесть когда
http://www.site.com/test/

Без слеша все работает нормально

А вот мой аксес:
RewriteEngine on
Options +FollowSymlinks
RewriteBase /

RewriteRule ^([a-z]+)/*$ $1.php

Может сдесь нужно включать какие-то допольнительные опции модреврайта?

Isis
13.02.2008, 02:06
Удали свой .htaccess и создай новый с содержанием:

RewriteEngine On
Options +FollowSymLinks
RewriteRule ^([a-z]+)/?$ $1.php [L]

Nicca
13.02.2008, 02:11
Сделал
та же ситуация(((((
Пробовал даже менять виртуальный хост.

Может это из кеша выдает? Хотя в файле, который я запрашиваю я менял информаицию, и мне выдавало страницу с новой инфой..

Isis
13.02.2008, 02:14
Мейби в апаче акцес файл прописан какой-нить .htaccessfilenotuseforhackers, а не .htaccess
Или у тебя мод_реврайт вообще не подключен

Посмотри в phpinfo() видно ли его

Nicca
13.02.2008, 02:19
Его видно, так как ссылки вида site.com/test.php?id=ok я переделывал на site.com/ok.html

А в конфиге апача прописал:
LoadModule rewrite_module modules/mod_rewrite.so
AddModule mod_rewrite.c

Nicca
13.02.2008, 02:21
Хотя в пхпинфо найти ничего о модреврайте не могу. Там такой строки нет

Nicca
13.02.2008, 03:24
Вобщем всем большое спасибо. Вроде решилась проблема. Снес нафиг апач, поставил более раннюю версию и все работает.
Спасибо