anonymous@RULINUX.NET~# Last login: 2024-12-23 12:52:54
Регистрация Вход Новости | Разметка | Пользователи | Галерея | Форум | Статьи | Неподтвержденное | Трекер | Правила форума | F.A.Q. | Ссылки | Поиск
[#] [Добавить метку] [Редактировать]
Скрыть

[htaccess] я опять с реврайтами

Да, я их очень не знаю и все не могу подружиться...

Нужно было адреса типа domain.name/index.php?page=blabla отображать как domain.name/blabla, что я сделал таким образом:

RewriteEngine on
RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?page=$1

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

domain.name/index.php?page=project&id=blabla

отображались как

domain.name/project/blabla

Делаю аналогично:

RewriteRule ^project/([^/\.]+)/?$ index.php?page=project&id=$1 [L]

и не работает нифига :( то есть, с таким правилом пытается ломиться именно на domain.name/project, которого реально нет

vitroot(*) (2012-11-02 01:38:31)

Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:16.0) Gecko/20100101 Firefox/16.0

[Ответить на это сообщение]
[#] [Добавить метку] [Редактировать] Ответ на: [htaccess] я опять с реврайтами от vitroot 2012-11-02 01:38:31
avatar
Скрыть

Re:[htaccess] я опять с реврайтами

>и не работает нифига :(
У меня заработало, например. Может какие другие правила мешают?

SystemV(*)(2012-11-02 03:09:47)

Emacs-w3m/1.4.503 w3m/0.5.3
[#] [Добавить метку] [Редактировать] Ответ на: Re:[htaccess] я опять с реврайтами от SystemV 2012-11-02 03:09:47
avatar
Скрыть

Re:[htaccess] я опять с реврайтами

так у меня других и нет вообще :)

vitroot(*)(2012-11-02 03:12:54)

Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:16.0) Gecko/20100101 Firefox/16.0
[#] [Добавить метку] [Редактировать] Ответ на: [htaccess] я опять с реврайтами от vitroot 2012-11-02 01:38:31
avatar
Скрыть

Re:[htaccess] я опять с реврайтами

УМВР тоже.

anonymous(*)(2012-11-02 03:13:10)

[#] [Добавить метку] [Редактировать] Ответ на: Re:[htaccess] я опять с реврайтами от vitroot 2012-11-02 03:12:54
avatar
Скрыть

Re:[htaccess] я опять с реврайтами

>так у меня других и нет вообще :)
Хм. Вообще-вообще? Даже проверок на существование файла, которые обычно пишут?

А если попробовать на том же апаче создать другой виртуальный хост, пустой, и сделать в нём только index.php с простым var_dump($_GET) и htaccess с двумя строчками?

SystemV(*)(2012-11-02 03:16:56)

Emacs-w3m/1.4.503 w3m/0.5.3
[#] [Добавить метку] [Редактировать] Ответ на: Re:[htaccess] я опять с реврайтами от SystemV 2012-11-02 03:09:47
avatar
Скрыть

Re:[htaccess] я опять с реврайтами

Ты в error.log посмотри.

Я затолкал print_r($_GET) в скрипт, он мне нормально показывает все, но реально при этом ломится на страницу domain.name/project, которой, конечно нет

vitroot(*)(2012-11-02 03:18:33)

Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:16.0) Gecko/20100101 Firefox/16.0
[#] [Добавить метку] [Редактировать] Ответ на: Re:[htaccess] я опять с реврайтами от SystemV 2012-11-02 03:16:56
avatar
Скрыть

Re:[htaccess] я опять с реврайтами

в скриптах значение $_GET['page'] парсится банальным switch() case и именно project/123123123 не работает

vitroot(*)(2012-11-02 03:20:19)

Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:16.0) Gecko/20100101 Firefox/16.0
[#] [Добавить метку] [Редактировать] Ответ на: Re:[htaccess] я опять с реврайтами от vitroot 2012-11-02 03:18:33
avatar
Скрыть

Re:[htaccess] я опять с реврайтами

>Ты в error.log посмотри.
У меня там пусто.

Вот index.php:


<?php
var_dump($_GET);
 


Вот .htaccess:

RewriteEngine on
RewriteRule ^project/([^/\.]+)/?$ index.php?page=project&id=$1 [L]
 


Вот конфиг апача для данного хоста:

<VirtualHost *:8079>
     DocumentRoot /home/username/var/www/php-test/
     <Directory "/home/username/var/www/php-test/">
        AllowOverride All
        Order Deny,Allow
     </Directory>
     ErrorLog "/var/log/httpd/phptest_error.log"
     CustomLog "/var/log/httpd/phptest_access.log" combined
</VirtualHost>
 

SystemV(*)(2012-11-02 03:23:19)

Emacs-w3m/1.4.503 w3m/0.5.3
[#] [Добавить метку] [Редактировать] Ответ на: Re:[htaccess] я опять с реврайтами от vitroot 2012-11-02 03:20:19
avatar
Скрыть

Re:[htaccess] я опять с реврайтами

при этом, если в урлах прописать index.php?page=project&id=123123123 то все работает правильно

vitroot(*)(2012-11-02 03:23:33)

Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:16.0) Gecko/20100101 Firefox/16.0
[#] [Добавить метку] [Редактировать] Ответ на: Re:[htaccess] я опять с реврайтами от vitroot 2012-11-02 03:23:33
avatar
Скрыть

Re:[htaccess] я опять с реврайтами

а первое правило? Вот мой .htaccess

php
RewriteEngine on
RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?page=$1
RewriteRule ^project/([^/\.]+)/?$ index.php?page=project&id=$1 [L]
 

vitroot(*)(2012-11-02 03:24:38)
Отредактировано vitroot по причине "не указана"
Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:16.0) Gecko/20100101 Firefox/16.0
[#] [Добавить метку] [Редактировать] Ответ на: Re:[htaccess] я опять с реврайтами от vitroot 2012-11-02 03:24:38
avatar
Скрыть

Re:[htaccess] я опять с реврайтами

Всё работает

anonymous(*)(2012-11-02 03:27:58)

[#] [Добавить метку] [Редактировать] Ответ на: Re:[htaccess] я опять с реврайтами от vitroot 2012-11-02 03:24:38
avatar
Скрыть

Re:[htaccess] я опять с реврайтами

А первое-то правило у тебя продолжает срабатывать или тоже перестало?

anonymous(*)(2012-11-02 03:31:09)

[#] [Добавить метку] [Редактировать] Ответ на: Re:[htaccess] я опять с реврайтами от vitroot 2012-11-02 03:24:38
avatar
Скрыть

Re:[htaccess] я опять с реврайтами

>а первое правило?
С первым тоже работает. Что-то странное у тебя.

SystemV(*)(2012-11-02 03:31:14)

Emacs-w3m/1.4.503 w3m/0.5.3
[#] [Добавить метку] [Редактировать] Ответ на: Re:[htaccess] я опять с реврайтами от vitroot 2012-11-02 03:24:38
avatar
Скрыть

Re:[htaccess] я опять с реврайтами

в index.php примерно так:

php
switch($_GET["page"])
{
    case "":                $pg = "main"; break;
    case "main":            $pg = "main"; break;
    case "project":         $pg = "project"; break;

    default: $pg = "index"; break;
}
include "pgs/$pg.php";
 

vitroot(*)(2012-11-02 03:31:34)

Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:16.0) Gecko/20100101 Firefox/16.0
[#] [Добавить метку] [Редактировать] Ответ на: Re:[htaccess] я опять с реврайтами от anonymous 2012-11-02 03:31:09
avatar
Скрыть

Re:[htaccess] я опять с реврайтами

>А первое-то правило у тебя продолжает срабатывать или тоже перестало?
только с отображением с project/blablabla проблема. Переменные GET'а скрипт видит правильно и показывает их, но верстка ломается сразу, а влоге кажет, что не может найти файл domain.name/project

vitroot(*)(2012-11-02 03:34:22)

Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:16.0) Gecko/20100101 Firefox/16.0
[#] [Добавить метку] [Редактировать] Ответ на: Re:[htaccess] я опять с реврайтами от vitroot 2012-11-02 03:34:22
avatar
Скрыть

Re:[htaccess] я опять с реврайтами

верстка слетает потому, что скрипт пробует грузить css'ы не с /css/...., а с /project/css/......

vitroot(*)(2012-11-02 03:38:45)

Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:16.0) Gecko/20100101 Firefox/16.0
[#] [Добавить метку] [Редактировать] Ответ на: Re:[htaccess] я опять с реврайтами от vitroot 2012-11-02 03:31:34
avatar
Скрыть

Re:[htaccess] я опять с реврайтами

>в index.php примерно так:
С таким файлом тоже всё нормально.

SystemV(*)(2012-11-02 03:39:31)

Emacs-w3m/1.4.503 w3m/0.5.3
[#] [Добавить метку] [Редактировать] Ответ на: Re:[htaccess] я опять с реврайтами от vitroot 2012-11-02 03:38:45
avatar
Скрыть

Re:[htaccess] я опять с реврайтами

>верстка слетает потому, что скрипт пробует грузить css'ы не с /css/...., а с /project/css/......
А у тебя пути в html-е к этим файлам относительные или абсолютные?

SystemV(*)(2012-11-02 03:40:02)

Emacs-w3m/1.4.503 w3m/0.5.3
[#] [Добавить метку] [Редактировать] Ответ на: Re:[htaccess] я опять с реврайтами от SystemV 2012-11-02 03:40:02
avatar
Скрыть

Re:[htaccess] я опять с реврайтами

да вот тоже об этом задумался, у меня как раз прописаны относительные, из-за чего вся хрень может быть:

<link rel="stylesheet" type="text/css" href="css/.......

сейчас проверю

vitroot(*)(2012-11-02 03:43:11)

Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:16.0) Gecko/20100101 Firefox/16.0
[#] [Добавить метку] [Редактировать] Ответ на: Re:[htaccess] я опять с реврайтами от vitroot 2012-11-02 03:43:11
avatar
Скрыть

Re:[htaccess] я опять с реврайтами

>у меня как раз прописаны относительные, из-за чего вся хрень может быть
Они, естественно:) У тебя всё ок с реврайтом, а браузер ищет css и не находит. В лог апача пишется ошибка доступа к файлу css, а не к твоему скрипту.

SystemV(*)(2012-11-02 03:44:32)

Emacs-w3m/1.4.503 w3m/0.5.3
[#] [Добавить метку] [Редактировать] Ответ на: Re:[htaccess] я опять с реврайтами от SystemV 2012-11-02 03:44:32
avatar
Скрыть

Re:[htaccess] я опять с реврайтами

ага, из-за путей :)

я как раз стал проверять сорцы "глючной" страницы и наткнулся на косяки :)

Вобшем, спасибо, буду дальше пых мучать :)

vitroot(*)(2012-11-02 03:46:14)

Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:16.0) Gecko/20100101 Firefox/16.0
[#] [Добавить метку] [Редактировать] Ответ на: Re:[htaccess] я опять с реврайтами от vitroot 2012-11-02 03:46:14
avatar
Скрыть

Re:[htaccess] я опять с реврайтами

>Вобшем, спасибо, буду дальше пых мучать :)
Кстати, возьми лучше какой-нибудь минималистичный фреймворк, где есть роутинг по регэкспам, а то этот mod_rewrite дико неудобно дебагать. Или сам простенький роутинг в index.php напиши.

SystemV(*)(2012-11-02 03:50:14)

Emacs-w3m/1.4.503 w3m/0.5.3
[#] [Добавить метку] [Редактировать] Ответ на: Re:[htaccess] я опять с реврайтами от SystemV 2012-11-02 03:50:14
avatar
Скрыть

Re:[htaccess] я опять с реврайтами

да, я потом все-равно реврайты сконверчу для nginx'а. А php-фреймворки сейчас лень юзать, да и время на них убивать не хочу, потому что хочу пошустрее дописать один проектик для ведения проектиков :)

Попутно монгу мучаю, ибо NoSQL таки нереально рулит )

vitroot(*)(2012-11-02 03:52:52)

Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:16.0) Gecko/20100101 Firefox/16.0
[#] [Добавить метку] [Редактировать] Ответ на: Re:[htaccess] я опять с реврайтами от vitroot 2012-11-02 03:52:52
avatar
Скрыть

Re:[htaccess] я опять с реврайтами

>А php-фреймворки сейчас лень юзать, да и время на них убивать не хочу,
Можно тупо взять что-то такое:

php
$url_map = array('^$' => 'index',
                 '^page/([\w-]+)/([0-9]+)/$' => 'view_page',
                 '^([\w-]+)/$' => 'some_other_func');


// Show some page.
function view_page($section_code, $id)
  {
     $content = do_some($section_code, $id);
     /* ... */
  }

// other shit

/* Routing */
$request = $_GET['q'];
$is_found = false;
foreach ($url_map as $pattern => $method)
  {
    if (preg_match('#'.$pattern.'#', $request, $matches))
      {
        call_user_func_array($method, array_slice($matches, 1));
        $is_found = true;
        break;
      }
  }

if (!$is_found)
    /* raise 404 */
 


И в .htaccess


RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
 


Роутинг-как-в-модном-фреймворке на коленке:)

>Попутно монгу мучаю, ибо NoSQL таки нереально рулит )
Ещё бы транзакции туда, эх.

SystemV(*)(2012-11-02 04:35:10)
Отредактировано SystemV по причине "не указана"
Emacs-w3m/1.4.503 w3m/0.5.3
[#] [Добавить метку] [Редактировать] Ответ на: Re:[htaccess] я опять с реврайтами от SystemV 2012-11-02 04:35:10
avatar
Скрыть

Re:[htaccess] я опять с реврайтами

да я думал над подобным, но пока решил своими силами сделать. Тем более, что ничего там сложного нет.

>>Ещё бы транзакции туда, эх.
Ну еще бы :) Но мне пока они не очень нужны. Есть некоторые моменты, где стоило бы, но там настолько мелочь, что средствами приложения реализовать вполне допустимо, а не субд

vitroot(*)(2012-11-02 04:41:57)

Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:16.0) Gecko/20100101 Firefox/16.0
[#] [Добавить метку] [Редактировать] Ответ на: [htaccess] я опять с реврайтами от vitroot 2012-11-02 01:38:31
avatar
Скрыть

Re:[htaccess] я опять с реврайтами

Казалось бы, что может волновать людей одного в 4 другого в 8 утра...

anonymous(*)(2012-11-02 04:46:24)

Mozilla/5.0 (X11; Linux i686; rv:10.0.9) Gecko/20100101 Firefox/10.0.9 Iceweasel/10.0.9
[#] [Добавить метку] [Редактировать] Ответ на: Re:[htaccess] я опять с реврайтами от anonymous 2012-11-02 04:46:24
avatar
Скрыть

Re:[htaccess] я опять с реврайтами

>Казалось бы, что может волновать людей одного в 4 другого в 8 утра...
Сон для лохов!!

vitroot(*)(2012-11-02 04:48:42)

Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:16.0) Gecko/20100101 Firefox/16.0
Этот тред читают 6 пользователей:
Анонимных: 6
Зарегистрированных: 0




(c) 2010-2020 LOR-NG Developers Group
Powered by TimeMachine

Valid HTML 4.01 Transitional Правильный CSS!