|
|
28.01.2013, 11:59
|
|
Гость
Гость
|
Имеются страницы вида:
Код:/Netshop/Goods.html?action=index&srchPat[4]=2781
Надо сделать ЧПУ:
Дабы не портить всю структуру прописал в .htaccess
Код:RewriteRule ^Netshop/c-([0-9]+)\.html /Netshop/Goods.html?action=index&srchPat[4]=$1 [L]
между
Код:<ifModule mod_rewrite.c>
RewriteEngine On
и
Код:RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
Переменные GET все нормально определяются, однако контент выводится, как будто ничего не передано. Как решить бы проблему?
|
|
|
29.01.2013, 17:02
|
|
Константин
Константин
Зарегистрирован: 2010-07-20
Сообщений: 210
|
Как-то так попробуйте:
Код:RewriteRule Netshop/c-([0-9]+).html$ /netcat/require/e404.php?REQUEST_URI=/Netshop/Goods.html?action=index&srchPat[4]=$1 [L,QSA]
Не факт, что именно так заработает, поэкспериментируйте.
orlovkn
|
|
|
30.01.2013, 22:16
|
|
Гость
Гость
|
Не подскажите, в какую сторону еще можно экспериментировать? Если добавить правило:
Код:RewriteRule ^Netshop/c-([0-9]+).html$ /netcat/require/e404.php?REQUEST_URI=Netshop/Goods.html&action=index&srchPat[4]=$1.html [L,QSA]
то массив переменных $_SERVER практически идентичен. Отличается двумя элементами. В исходном случае:
Код:
[REDIRECT_URL] => /Netshop/Goods.html
[REQUEST_URI] => /Netshop/Goods.html?action=index&srchPat[4]=2781.html
В случае с ЧПУ:
Код:
[REDIRECT_URL] => /Netshop/c-2781.html
[REQUEST_URI] => /Netshop/c-2781.html
Очевидно, что нужно каким-то образом изменить $_SERVER['REQUEST_URI']; вот только как?
|
|
|
30.01.2013, 22:43
|
|
Гость
Гость
|
В самом начале файла Код:/netcat/require/e404.php добавил:
Код:if ($_SERVER["REDIRECT_REQUEST_URI"]) {
$_SERVER["REQUEST_URI"] = $_SERVER["REDIRECT_REQUEST_URI"];
unset($_SERVER["REDIRECT_REQUEST_URI"]);
unset($_GET['REQUEST_URI']);
$_GET['?action'] = 'index';
}
if ($_SERVER["REDIRECT_REDIRECT_URL"]) {
$_SERVER["REDIRECT_URL"] = $_SERVER["REDIRECT_REDIRECT_URL"];
unset($_SERVER["REDIRECT_REDIRECT_URL"]);
}
А в .htaccess:
Код:RewriteRule ^Netshop/c-([0-9]+).html$ /netcat/require/e404.php?REQUEST_URI=Netshop/Goods.html&action=index&srchPat[4]=$1.html [E=REDIRECT_URL:/Netshop/Goods.html,E=REQUEST_URI:/Netshop/Goods.html?action=index&srchPat[4]=$1.html,L,QSA]
Таким образом я получил четыре соврешенно идентичных массива (как в оригинале, так и с ЧПУ):
Код:echo "<!--";
print_r($_SERVER);
print_r($_GET);
print_r($_POST);
print_r($_REQUEST);
echo "-->";
Не работает, блин, все равно. Ну куда еще можно копать? От чего еще может зависеть?
|
|
|
19.02.2013, 14:08
|
|
Руслан Густокашин
Студия Вэлпис
Зарегистрирован: 2012-02-06
Сообщений: 962
|
Если так и не разберетесь - пишите, я помогу, но мне надо будет посидеть-покопаться, поэтому потребуется небольшая оплата. Так навскидку вы все правильно делаете, но это только на первый взгляд.
|