secach

Рейтинг
29
Регистрация
11.03.2010
dma84:
RewriteCond %{REQUEST_FILENAME} !-s

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php [L,QSA]

Все равно пишет, что нет доступа, т.е. пытается найти index файл в папке

---------- Добавлено 07.12.2012 в 10:47 ----------

Получилось закоментировав

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^url/(.*)$ $1
- остатки отладочной информации, как

и

RewriteCond %{REQUEST_FILENAME} !zserver-status
,

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php [L,QSA]

у меня изначально было, вытаскиваю их через $_SERVER['REQUEST_URI']

В общем я так понимаю. мне нужно написать правило для папки, чтоб ее скрыть, так как буд-то ее не существует, мне просто интересно, это вообще возможно?

Прошу прощения, вот основной мой htacces

DirectoryIndex index.php

Options -Indexes


php_value max_execution_time 200

php_value session.use_trans_sid 0
php_value session.use_cookies 1
php_value session.use_only_cookies 1

php_flag magic_quotes_gpc off
php_flag magic_quotes_runtime off
php_flag register_globals on
php_flag allow_call_time_pass_reference on
php_flag output_buffering on
php_flag display_errors on

RewriteEngine On

RewriteCond %{HTTP_HOST} ^site.ru
RewriteRule (.*) http://www.site.ru/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !zserver-status


RewriteRule ^(.*)$ ./index.php [L,QSA]

RewriteRule ^url/(.*)$ $1

# If-Modified-Since (if php is not installed as cgi then comment lines below)
RewriteRule .* - [E=HTTP_IF_MODIFIED_SINCE:%{HTTP:If-Modified-Since}]
RewriteRule .* - [E=HTTP_IF_NONE_MATCH:%{HTTP:If-None-Match}]
dma84:
Но при этом в директории не должно быть индексного файла

Что-то не то, у меня уже есть правило, которое все ссылки перенаправляет на главный index, и ссылка вида site.ru/cat1/ у меня нормально работает, пока я реально не создам каталог cat1.

Либо я неверно понял ваш ответ

Так я получал все ссылки

preg_match_all("/<(a|link|script|img).*(href|src|url){1}[\s]*(=){1}[\s]*('|\"){1}(?:(?!mailto)([^\"'#\\\]+))(\\4){1}.*>/isU", $content, $match);
$links = $match[5];

Потом смотрел, есть ли "/" или "?" в начале, чтобы решить прибавлять ссылку к url страницы или

считать ее корневой, или мониторить

preg_match('/^(http|https|ssl):\/\//i', $value)
внешнюю ссылку

$(selector).live("click", function(){
siv1987:

Автору советую юзать DOM. Для парсинга html регулярные выражения не самый удачный вариант, тем более на произвольном документе.

Тут задача просто была немного другая, я не работаю со страницей как таковой, мне просто нужно было перелопатить БД с новостями, где оч. много мусора, и если раньше он не мешал, то теперь мешает. А остались сопли от встроенного редактора, типа <span style=""> и т.п.

siv1987:


'/<b>((?:(?!<b>).)*?)<\/b>/is'

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

(?!<b>) - это получается маска отрицания слова <b>, а ?: наличие маски отрицания и любой символ, я правильно понял? Плохо сформулировал, конечно.

В любом случае, еще раз спасибо, а то я зациклился на [^ ], которое и так понятно тут не уместно, а все правила еще не выучил, редко сталкиваюсь.

LEOnidUKG:
дыг может быть просто str_replace?

Разве он не просто строку заменяет, яж не знаю, что может быть между <b param1>...</b>

главное не пропустить похожий тег внутри, чтоб не получилось <newtag>...</b>...<b param=1>...</newtag>, но надо, чтоб проходили другие теги, т.е. /'<b param1>(.*)</b>'/ пропустит все, /'<b param1>([^<]*)</b>'/ непропустит другие теги, а как сделать, чтото типа

/'<b param1>([^(<b)]*)</b>'/ , только, чтоб <b считалось одним словом, а не набором символов < и b

LEOnidUKG:
Что есть в оригинале и что нужно получить, лучше так напишите.

Исходный код


<b id=1>
<a>
<b id=1><teg>text</teg></b>
</a>
<b id=1>text</b>
<b id=2>text</b>
</b>

Надо


<b id=1>
<a>
<newteg><teg>text</teg></newteg>
</a>
<newteg>text</newteg>
<b id=2>text</b>
</b>

В идеале конечно надо просто все теги <b param=1></b> заменить на новый тег, но при этом не трогать <b param=2>

Всего: 67