Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Администрирование Web серверов и Web служб > RewriteEngine


Автор: icepro 10.12.2008, 00:01
фесь форум перерыл но ниче не помогло!

есть файлик .htaccess, в нем

Код

DirectoryIndex index.php

RewriteEngine on

RewriteBase /

RewriteRule ^cat_(.*).htm$ /index.php?categoryID=$1 [NC,L,QSA]
RewriteRule ^page_(.*).htm$ /index.php?$1=yes [NC,L,QSA]
RewriteRule ^pagea_(.*).htm$ /index.php?show_aux_page=$1 [NC,L,QSA]
RewriteRule ^item_(.*)_(.*).htm$ /index.php?productID=$1&picture_id=$2 [NC,L,QSA]
RewriteRule ^item_(.*).htm$ /index.php?productID=$1 [NC,L,QSA]


на серваке это работает на локальной машине нет!

строчка LoadModule rewrite_module modules/mod_rewrite.so есть
копался с настройками апача (стоит аппсерв), снес все, и поставил заново, все равно не пашет

файл .htaccess читается это точно, проверял написав туда "денай фром ол" и доступ закрылся.

че делать даже не знаю.. может правила не так должны звучать для локальной машины?

ЗЫ. в ерорах ниче нету...

Автор: getme 10.12.2008, 00:18
пробовал
RewriteRule ^(.*)$ http://google.com ?

если срабатывает, значит смотри есть в REQUEST_URI и сравнивай с правилом.

Автор: icepro 10.12.2008, 00:41
RewriteRule ^(.*)$ http://google.com срабатывает
и если можно поподробней про REQUEST_URI...

Автор: getme 10.12.2008, 00:51
значит просто запрашиваемые и прописанные пути не совпадают

тебе нкжно узнпть запрошенный адрес, например так

Код

RewriteRule ^(.*)$ http://google.com?%{REQUEST_URI}


и открой урл

cat_(.*).htm

либо смотри логи.

Автор: icepro 10.12.2008, 01:13
если выполнить RewriteRule ^cat_(.*).htm$ http://google.com?%{REQUEST_URI}
и ввести cat_1.htm то получаю:
Страница www.google.com/?/test/cat_1.htm= не существует.


даже если выполнять RewriteRule ^cat_(.*).htm$ http://google.com?$1
и ввести cat_1.htm то получаю:
Страница www.google.com/?1= не существует
тоесть $1 подставляется как значение, 

но блин если выполнять RewriteRule ^cat_(.*).htm$ $1.php
то 404!

че это такое? как прально построить правило?

Добавлено через 2 минуты и 22 секунды
хотя если отак RewriteRule ^(.*)$ $1.php
и в адресной строке вписать просто 1, то
403: You don't have permission to access /redirect:/1.php.php.php on this server.

Автор: icepro 10.12.2008, 01:30
заработало!
было как в первом посте
а стало вот так
Код

RewriteEngine on

RewriteRule ^cat_(.*).htm$ index.php?categoryID=$1
RewriteRule ^page_(.*).htm$ index.php?$1=yes
RewriteRule ^pagea_(.*).htm$ index.php?show_aux_page=$1
RewriteRule ^item_(.*)_(.*).htm$ index.php?productID=$1&picture_id=$2
RewriteRule ^item_(.*).htm$ index.php?productID=$1

Автор: vdim 10.2.2009, 00:30
а если RewriteRule ^(.*)$ http://google.com не работает то куда надо смотреть?
Вроде весь апач перерыл в поисках грабель.

Код

aphina: # httpd2 -M
Loaded Modules:
 core_module (static)
 mpm_prefork_module (static)
 http_module (static)
 so_module (static)
 actions_module (shared)
 alias_module (shared)
 auth_basic_module (shared)
 authn_file_module (shared)
 authz_host_module (shared)
 authz_groupfile_module (shared)
 authz_default_module (shared)
 authz_user_module (shared)
 authn_dbm_module (shared)
 autoindex_module (shared)
 cgi_module (shared)
 dir_module (shared)
 env_module (shared)
 expires_module (shared)
 include_module (shared)
 log_config_module (shared)
 mime_module (shared)
 negotiation_module (shared)
 setenvif_module (shared)
 ssl_module (shared)
 suexec_module (shared)
 userdir_module (shared)
 php5_module (shared)
 apparmor_module (shared)
 rewrite_module (shared)
 security2_module (shared)
 mono_module (shared)
Syntax OK
aphina: #


rewrite_module загружен

файл .htaccess
Код

aphina: # cat .htaccess
RewriteEngine On

RewriteRule ^(.*)$ http://google.com
aphina: #

набираю _http://localhost/, а он мне, вместо google, index.php показывает на локальной машине.

Автор: vdim 10.2.2009, 01:45
На созданном виртуальном апачевском хосте - заработала.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)