Miha:
"Ну у тебя и .htaccess.." - А что конкретно не так? "Вставь мою строчку сразу после RewriteEngine On." - не помогло.… Подробнее
Ну, я лично кое-что бы оптимизировал. Впрочем, каждому свой код больше нравится. Насчет твоего вопроса - похоже Apache после замены адреса делает "internal request" и заменяет все заново. Для отличия этих запросов можно применять, например, переменные окружения, но лучше, наверное, использовать то, что сам HTTP запрос остается неизменным... Попробуй так - RewriteCond %{THE_REQUEST} (?:auth|article)\.php/?\ HTTP/\dПЛЮС\.\dПЛЮС$ RewriteRule $ /index.php? [L]
Это уже работает. Т.е. я перехожу по miha.ru/auth.php и сервер возвращает интернал еггог. Но при переходе по miha.ru/auth.php?logout всё происходит нормально. Конечно, отчасти это из-за того, что есть ссылка, которая на это ссылается. Но переходит же по нечпушному адресу
Еще перед первой скобкой лучше поставить ^[^?]* чтобы не было ложных срабатываний, типа /auth/?file=auth.php С 500 - вообще хз, у меня ее нет. Надо будет полностью скопировать твой .htaccess
В общем, ошибка выскакивает, только если .htaccess в корне. Нужно слегка изменить условие. Напишу сразу полный код: RewriteCond %{THE_REQUEST}%{REQUEST_URI} ^[^?]ЗВЕЗДОЧКА?(?:auth|article|registration)\.php.ЗВЕЗДОЧКА?\ HTTP/\d\.\d/?(?!index\.php) RewriteRule $ /index.php? [L] Надеюсь, больше косяков нет.
ImIeee:
В общем, ошибка выскакивает, только если .htaccess в корне. :-( Нужно слегка изменить условие. Напишу сразу полный код: RewriteCond %{THE_REQUEST}%{REQUEST_URI} ^[^?]ЗВЕЗДОЧКА?(?:auth|article|registration)\.php.ЗВЕЗДОЧК… Подробнее
Хотя, все же ошибки есть... Вот так - RewriteCond %{THE_REQUEST}%{REQUEST_URI} ^[^?]ЗВЕЗДОЧКА?(?:auth|article|registration) \.php.ЗВЕЗДОЧКА?\ HTTP/\d\.\d(?!/index\.php) RewriteRule $ /index.php? [L] Или вот - более оптимизированный вариант, но менять имена файлов нужно в двух строчках. RewriteCond %{THE_REQUEST} ^[^?]ЗВЕЗДОЧКА?(?:auth|article|registration)\.php.ЗВЕЗДОЧКА?\ HTTP/\d\.\d$ RewriteRule (?:auth|article|registration)\.php/?$ /index.php? [L]
Жесть, спасибо. А есть какие-нибудь хорошие уроки/статьи по настройке .htaccess? К примеру, я не понимаю разницу между RewriteCond и RewriteRule. Нагуглить и сам могу что-нибудь, просто если есть проверенные источники, то лучше по ним учиться.
10 июл 2012 в 18:45
"Вставь мою строчку сразу после RewriteEngine On." - не помогло.