[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: мод реврайт
bubanay
Может конечно так ни делают, но у меня каждый блок статей выводится на отдельной странице. Можно ли в таком случае в .htaccess прописать нормальный вывод адресов страниц без php кода?

Нужно следующее:
из sayt.ru/test.php?id=1 получить sayt.ru/test-1.htm
из sayt.ru/test1.php?id=1 получить sayt.ru/test1-1.htm

Под каждую категорию статей своя таблица в БД.

Я пробовал прописать как-то так
RewriteEngine On
RewriteRule ^(test+)-([0-9]*).(htm) /test.php?id=$1
RewriteRule ^(test1+)-([0-9]*).(htm) /test1.php?id=$1

Подскажите как правильно.






Спустя 15 минут, 3 секунды (23.06.2010 - 10:45) netruxa написал(а):
RewriteEngine On
RewriteRule ^test-([0-9]*).htm /test.php?id=$1
RewriteRule ^test1-([0-9]*).htm /test1.php?id=$1

Спустя 6 минут, 53 секунды (23.06.2010 - 10:52) bubanay написал(а):
что-то не хочет

Спустя 10 минут, 52 секунды (23.06.2010 - 11:03) netruxa написал(а):
что пишет?
у меня лично работает. файлы test и test1 в корне сайта лежат?

Спустя 3 минуты, 40 секунд (23.06.2010 - 11:06) bubanay написал(а):
лежат в корне..ничего не пишет, собственно совсем ничего не происходит

Спустя 3 минуты, 9 секунд (23.06.2010 - 11:09) netruxa написал(а):
в test.php напиши print_r($_GET)
и запусти sait.php/test-1.htm

Спустя 10 минут, 5 секунд (23.06.2010 - 11:20) bubanay написал(а):
если вбивать sait.php/test-1.htm то страница отоюбражается нормально, но почему в меню и при переходе идет ссылка всеравно с php. Их тоже нужно подправлять как-то?

Спустя 9 минут, 42 секунды (23.06.2010 - 11:29) Ice написал(а):
символические ссылки включены?

Спустя 1 минута, 50 секунд (23.06.2010 - 11:31) bubanay написал(а):
не знаю что такое символические ссылки, где и как их нужно включить?

Спустя 8 минут, 32 секунды (23.06.2010 - 11:40) Ice написал(а):
Придайте Вашему .htaccess-файлу следующий вид:

Options FollowSymLinks
RewriteEngine On
RewriteRule ^test-([0-9]*).htm /test.php?id=$1
RewriteRule ^test1-([0-9]*).htm /test1.php?id=$1

Наличие символических ссылок - обязательное условие. Без них ничего не будет работать.
А также, проверьте включен ли вообще у Вас мод-рерайт. Для этого, если у Вас есть доступ к конфигурационному файлу сервера httpd.conf, найдите в нем строку LoadModule rewrite_module modules/mod_rewrite.so, и если она закомментирована, - снимите знак комментария с нее, после чего сохраните изменения и перезапустите сервер.

Не дочитал тему до конца - все у Вас работает.

Спустя 28 минут, 28 секунд (23.06.2010 - 12:08) bubanay написал(а):
добавил Options FollowSymLinks, все равно не хочет.
Страницы формы sayt.ru/test-1.htm открываются, но почему-то в списке статей стоят ссылки вида sayt.ru/test.php?id=1 и при их открытии тот же вид ссылки. Они должны были поменяться автоматом? Или нужно еще что-то где-то подправлять?

Спустя 28 минут, 5 секунд (23.06.2010 - 12:36) Ice написал(а):
нужно теперь поменять все ссылки в списке статей на те, которые требуются. Вы переворачиваете работу модрерайта. Он модернизированные ссылки приводит к первоначальному виду, а не наоборот.

Спустя 27 минут, 56 секунд (23.06.2010 - 13:04) bubanay написал(а):
Благодарю, на хостинге заработало, а через Дримвиер наверно не обробатывает файл .htaccess

Спустя 11 минут, 13 секунд (23.06.2010 - 13:15) bubanay написал(а):
нашел в денвере файл httpd.conf нашел строку
LoadModule rewrite_module modules/mod_rewrite.so она без #.
Не подскажете причину по которой денвер может не воспринимать файл .htaccess ?

Спустя 38 минут, 15 секунд (23.06.2010 - 13:54) Ice написал(а):
подскажу. Спускайтесь ниже по файлу в поисках тега <Directory %DOCUMENT_ROOT%> вместо %DOCUMENT_ROOT% должен быть указан путь к директории, в которой лежат ваши все ваши php-страницы.
Внутри этого тега есть директива AllowOverride. Сейчас она скорее всего установлена в None. Вам нужно исправить ее следующим образом
AllowOverride All

После этого, опять же, сохранить изменения и перезапустить сервер.

Спустя 1 минута, 6 секунд (23.06.2010 - 13:55) Crash2007 написал(а):
а так тоже не работает?:
RewriteEngine On
RewriteRule ^test-([0-9]*).htm /test.php?id=$1 [L]
RewriteRule ^test1-([0-9]*).htm /test1.php?id=$1 [L]

Спустя 21 минута, 22 секунды (23.06.2010 - 14:16) bubanay написал(а):
Цитата (Ice @ 23.06.2010 - 10:54)
подскажу. Спускайтесь ниже по файлу в поисках тега <Directory %DOCUMENT_ROOT%> вместо %DOCUMENT_ROOT% должен быть указан путь к директории, в которой лежат ваши все ваши php-страницы.
Внутри этого тега есть директива AllowOverride. Сейчас она скорее всего установлена в None. Вам нужно исправить ее следующим образом
AllowOverride All

После этого, опять же, сохранить изменения и перезапустить сервер.

такой строки там нет <Directory %DOCUMENT_ROOT%> есть просто строка <Directory />

Поправил на
<Directory C:\WebServers\home\localhost\www\/>
Options Includes Indexes FollowSymLinks
AllowOverride All
Order deny,allow
Allow from all
Satisfy all
</Directory>

Что-то с ново сделал не так, так-как директория работать перестала.

Спустя 5 минут, 55 секунд (23.06.2010 - 14:22) Ice написал(а):
не надо такие вещи править. Оставьте директорию / (слеш) (верните все на место), спускайтесь ниже и смотрите внимательно, там должна быть директория, в которой лежат псе ваши пиэйчпишки

Спустя 17 минут, 8 секунд (23.06.2010 - 14:39) bubanay написал(а):
такой дериктории там нет<Directory %DOCUMENT_ROOT%>. Я и полную фразу поискал и дерикторию отдельно поискал и документ, из за версии денвера эти фразы могут отличаться?

Спустя 1 минута, 34 секунды (23.06.2010 - 14:41) Ice написал(а):
прочитайте пожалуйста до конца мой пост, в котором я упоминал о док-руте.

Спустя 11 минут, 20 секунд (23.06.2010 - 14:52) bubanay написал(а):
<Directory встречается только в абзацах

# If you include a trailing / on /webpath then the server will
# require it to be present in the URL. You will also likely
# need to provide a <Directory> section to allow access to
# the filesystem path.


# The directive above can be placed in individual <Directory> blocks or the
# .htaccess file, with either the 'registry' (Windows behavior) or 'script'
# (Unix behavior) option, and will override this server default option.



<Directory />
Options Includes Indexes FollowSymLinks
AllowOverride All
Order deny,allow
Allow from all
Satisfy all
</Directory>

Все мои php страницы лежат в C:\WebServers\home\localhost\www\
Во втором встречается .htaccess но там нет не какого пути

Спустя 2 минуты, 54 секунды (23.06.2010 - 14:55) Ice написал(а):
значит, дополните httpd.conf :

<Directory "C:\WebServers\home\localhost\www">
Options Includes Indexes FollowSymLinks
AllowOverride All
Allow from all
</Directory>

Спустя 8 минут, 23 секунды (23.06.2010 - 15:03) bubanay написал(а):
Добавить
<Directory "C:\WebServers\home\localhost\www\">
Options Includes Indexes FollowSymLinks
AllowOverride All
Allow from all
</Directory>

в файл .htaccess, я правильно понял? Если в него то сайты перестают отображаться, если в httpd.conf то сайты отображаются некоректно

Спустя 2 минуты, 25 секунд (23.06.2010 - 15:06) Ice написал(а):
вобщем, у вас неработает htaccess на сайте? Скиньте вложением httpd.conf сюда. Будем смотреть. А так - это как ковровое бомбометание.

Спустя 7 минут, 35 секунд (23.06.2010 - 15:13) bubanay написал(а):
не нашел где тут залить файл, залил на депозит
http://depositfiles.com/files/te4k6xhjl

Проблема именно в том что htaccess не работает при запуске сайта через дремвиер, на хостинге работает нормально

Спустя 26 минут, 55 секунд (23.06.2010 - 15:40) Ice написал(а):
значит с файлами все в порядке и смотреть их незачем.

Спустя 30 минут, 44 секунды (23.06.2010 - 16:11) inpost написал(а):
Если все работает, просто по сайту ссылки перепиши на новые, и всё
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.