|
|
|
|
|
для: elenaki
(19.01.2013 в 14:13)
| | А если другой браузер пока временно использовать для теста? Или FireBug с консолью нужны для отладки front-части? | |
|
|
|
|
 3.2 Кб |
|
|
для: elenaki
(19.01.2013 в 12:34)
| | FF и после полного удаления файла и перезагрузки компа сегодня продолжал делать уже
неправильную переадресацию!!!!0 т.е. успел вчера заглотить одну из ошибочных версий
.htaccess и никак не хотел ее из кэша выплевывать. пришлось запускать index из списка
сайтов, а не через адресную строку . открылся... забуду пока этот кошмар. сделаю вообще
по-другому (см. аттач) | |
|
|
|
|
|
|
|
для: cheops
(19.01.2013 в 09:51)
| | включаю, как было предложено - Апач вообще не запускается | |
|
|
|
|
|
|
|
для: elenaki
(18.01.2013 в 13:04)
| | Включите все же логгирование mod_rewrite - он покажет правила и почему он так делает - будет проще найти, может где-то есть правила на уровне httpd.conf. | |
|
|
|
|
|
|
|
для: elenaki
(18.01.2013 в 13:04)
| | скорее всего это какой-то жесткий кэш, другого объяснения я не вижу. как вариант, попробуйте просто создать новый локальный виртуальный хост и делать всё на нем, с другим подходом.
просто на будущее, если будете делать человеко-понятные урлы на голом php, то смело используйте тот подход, что я описал выше. мне он показался намного удобнее. я раньше в основном делал именно так, только потом уже написал полноценный роутер. | |
|
|
|
|
|
|
|
для: elenaki
(18.01.2013 в 12:25)
| | удалила вообще ВСЕ .htaccess' ы, которые были, очистила кэши, перезапустила Апач не кнопкой, а через
windows - все равно работает переадресация (по старому типу, с параметром page).
я счас свихнусь. комп выключить? как оно продолжает работать, если НЕТ никакого htaccess'a??? | |
|
|
|
|
|
|
|
для: psychomc
(18.01.2013 в 00:39)
| | спасибо, конечно. про WordPress знаю. в OzCommerce такая же штука есть.
мне не нужно переадресовывать все файкы, кроме картинок, скриптов и стилей. только те,
которые заканчиваются на html (добавить html к хвосту линка я в состоянии). но кроме того,
что они заканчиваются на .html, перед именем файла стоят несколько букв и цифр, которые
необходимы для дальнейшей передачи параметров на page.php - это какое меню (hor|vert),
категория меню ([0-9]+), номер страницы, если их несколько в этой категории ([0-9]+). это у
меня делало правило
^([a-zA-Z]+)/([0-9]+)/([0-9]+)/([a-zA-Z0-_]+)\.html$
|
вроде, нормально все было. но обнаружилось, что передается один лишний параметр (page),
из-за этого приходится и в линк его вставлять, хотя он никакой нагрузки не несет. но ни
изменить его, ни удалить не получается - сразу страница не находится, т.е. правило не
срабатывает и переадресация на page.php не делается. мне и так понятно, что страницы
*.html у меня нет и быть не может.
сделала как вы предложили. не успела создать файл redirtector.php, пошла в браузер проверить
и ... все работает как раньше! т.е. делается переадресация на page.php, хотя в .htaccess уже
написано redirector.php! это как? Apache перезапустила, кэш очистила. у меня что-то с сервером?
или с головой? | |
|
|
|
|
|
|
|
для: elenaki
(18.01.2013 в 00:36)
| | см мой пост снизу.
если нужен суффикс .html, просто перед explode сделайте
<?php
$parsed_url["path"] = str_replace(".html", "", $parsed_url["path"]);
|
| |
|
|
|
|
|
|
|
для: psychomc
(18.01.2013 в 00:21)
| | чтобы не быть голословным покажу на примере
.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php/?$ / [R=301,L]
RewriteRule ^index.php/(.*)$ $1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(js|ico|gif|jpg|png|css)$ redirector.php/$1 [L]
</IfModule>
|
redirector.php
<?php
function get_url_parts() {
$parsed_url = parse_url($_SERVER["REQUEST_URI"]);
return explode("/", trim($parsed_url["path"], "/"));
}
$url_parts = get_url_parts();
$count_parts = count($url_parts);
if ($count_parts == 0) {
require "index.php"; exit;
}
if ($url_parts[0] == "catalog") {
if ($count_parts == 1) {
require "catalog.php"; exit;
} elseif ($count_parts == 2) {
require "product.php?id=" . (int) $url_parts[1]; exit;
}
}
// ...
require "404.php";
|
примерно такой подход используется в wordpress. это не универсальное решение, но довольно удобно в пределах одного сайта. | |
|
|
|
|
|
|
|
для: psychomc
(18.01.2013 в 00:21)
| | это "просто" у меня как раз и не получается. к тому же у меня page.php и есть тот самый
редиректор, я в нем разбираю URL. меня вполне устраивает URL вида site/page/menu/cat_id/subcat_id.
при стирании линка назад выводится более общая инаформация. а клиент хочет УРЛ в виде
site/nazvanie_kategorii/nazvanie_podkategorii/nazvanie_statyi и что получится при стирании
линка назад??? ерунда. к тому же никто все равно никто никогда не запомнит такие линки,
робот знает, что это не html,a php. я же искала по теме, прочитала много. никакой пользы от таких линков. | |
|
|
|
|