Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Модреврайт. Вопрос (https://forum.antichat.xyz/showthread.php?t=61577)

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

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


Время: 11:46