Ru-Board.club
← Вернуться в раздел «Web-программирование»

» mod_rewrite: документация, готовые решения, вопросы

Автор: Fader
Дата сообщения: 04.04.2011 13:36
Подскажите готовое решение для следующей задачи:

хотелось бы СНГ-шный трафик по запросу site1.ru оставлять на site1.ru, а буржуев отправлять на site2.com.
Т.е. перечень IP диаппазонов (СНГ) скиппать, остальные: на site2.com

спасибо
Автор: C0ld_V0id
Дата сообщения: 04.04.2011 16:14
Здравствуйте! Подскажите пожалуйста следующее:
Есть сайт с папкой cat, где находятся много файлов (конечное кол-во неизвестно), нужно превращать названия файлов в ЧПУ на примере:
http://site.ru/cat/ocean.php превратить в http://site.ru/ocean
Все это должно применяться только к файлам в папке cat

Заранее спасибо!
Автор: Overness
Дата сообщения: 14.04.2011 17:39
Помогите составить правило, убирающие часть данных из URL, чтобы например из такого URL www.sait.zone/?index=stat/index сделать такой www.sait.zone/index
пытался на основе примеров сделать сам, но не работает, вот что получилось накалякать
RewriteEngine On
RewriteRule ^([^/]*)$ /?index=stat=$1 [L]
Автор: Cheery
Дата сообщения: 15.04.2011 01:35
C0ld_V0id

Цитата:
Все это должно применяться только к файлам в папке cat

что нить такого вида
RewriteCond %{DOCUMENT_ROOT}/cat%{REQUEST_URI}.php -f
RewriteRule /?(.*)$ cat/$1.php [L]
не проверял, так что смотрите

Overness
RewriteEngine On
RewriteCond %{REQUEST_URI} !index\.php
RewriteRule ^([^/]*)$ /index.php?index=stat/$1 [L]

опять же - не проверял, даю приблизительный код
Автор: Overness
Дата сообщения: 15.04.2011 07:53
Cheery спасибо за подсказку, немного изменив все заработало, выкладываю вариант может кому поможет
RewriteEngine On
RewriteCond %{REQUEST_URI} !index\.php
RewriteRule ^([^/\.]+)/?$ index.php?index=stat/$1 [L]
Автор: Weinaum
Дата сообщения: 15.04.2011 09:51
Подскажите плз настроить правильно - вроде просто все но где то торможу..
1. Сайт на joomla, многояз, надо чтобы урл видов http://mysite.com/ru/home , http://mysite.com/en/home , http://mysite.com/de/home - в общем для всех языков просто перенаправлялись на http://mysite.com или http://mysite.com/index.php
2. На другом сайте - по одной из ссылок идет бесконечный редирект, как проанализировать и выяснить причину?
Автор: Cheery
Дата сообщения: 15.04.2011 19:32
Weinaum

Цитата:
На другом сайте - по одной из ссылок идет бесконечный редирект, как проанализировать и выяснить причину?

включить RewriteLog на время и потом проанализировать файл с логами

Цитата:
Сайт на joomla, многояз, надо чтобы урл видов

и?
RewriteCond %{REQUEST_URI} ^/[a-z0-9]{2}/ [NC]
RewriteRule (.*) index.php [L]
Автор: Weinaum
Дата сообщения: 15.04.2011 23:03
Cheery

Цитата:
включить RewriteLog на время и потом проанализировать файл с логами

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

Цитата:
и?
RewriteCond %{REQUEST_URI} ^/[a-z0-9]{2}/ [NC]
RewriteRule (.*) index.php [L]

к сожалению, не срабатывает - при любом переходе на ..../home попадаю на ...../home
Автор: Cheery
Дата сообщения: 15.04.2011 23:14
Weinaum

Цитата:
к сожалению, не срабатывает

я проверил - все работает.. куда добавили?
и есть ли фактически эта папка на сервере
Автор: Weinaum
Дата сообщения: 16.04.2011 00:08
добавил конечно же в .htaccess.
А на сервере физически папок /ru /de /en и т.п. нет -как и home- это joomlo-вский sef создает если его включить короткие урлы, кроме того, что там полно дублей, у меня криво срабатывают переходы с главной, если ее урл отличен от /index.php - поэтому и надо, чтобы по псевдонимам главной попадать реально на index.php....
Автор: Cheery
Дата сообщения: 16.04.2011 00:09
Weinaum
я проверил на корневой htaccess - все работает.
Автор: Weinaum
Дата сообщения: 17.04.2011 01:30
Cheery
я вам верю.
включил логирование на время, вот лог попытки только одного перехода на mysite.demo/home -
[more]
Код: 192.168.2.100 - - [17/Apr/2011:00:21:24 +0200] [mysite.demo/sid#7fd523cfe6c8][rid#7fd523fee1b8/initial] (3) [perdir /var/www/mysite.demo/] add path info postfix: /var/www/mysite.demo/en -> /var/www/mysite.demo/en/home
192.168.2.100 - - [17/Apr/2011:00:21:24 +0200] [mysite.demo/sid#7fd523cfe6c8][rid#7fd523fee1b8/initial] (3) [perdir /var/www/mysite.demo/] strip per-dir prefix: /var/www/mysite.demo/en/home -> en/home
192.168.2.100 - - [17/Apr/2011:00:21:24 +0200] [mysite.demo/sid#7fd523cfe6c8][rid#7fd523fee1b8/initial] (3) [perdir /var/www/mysite.demo/] applying pattern '^(.*)$' to uri 'en/home'
192.168.2.100 - - [17/Apr/2011:00:21:24 +0200] [mysite.demo/sid#7fd523cfe6c8][rid#7fd523fee1b8/initial] (4) [perdir /var/www/mysite.demo/] RewriteCond: input='' pattern='mosConfig_[a-zA-Z_]{1,21}(=|\%3D)' => not-matched
192.168.2.100 - - [17/Apr/2011:00:21:24 +0200] [mysite.demo/sid#7fd523cfe6c8][rid#7fd523fee1b8/initial] (4) [perdir /var/www/mysite.demo/] RewriteCond: input='' pattern='base64_encode.*\(.*\)' => not-matched
192.168.2.100 - - [17/Apr/2011:00:21:24 +0200] [mysite.demo/sid#7fd523cfe6c8][rid#7fd523fee1b8/initial] (4) [perdir /var/www/mysite.demo/] RewriteCond: input='' pattern='(\<|%3C).*script.*(\>|%3E)' [NC] => not-matched
192.168.2.100 - - [17/Apr/2011:00:21:24 +0200] [mysite.demo/sid#7fd523cfe6c8][rid#7fd523fee1b8/initial] (4) [perdir /var/www/mysite.demo/] RewriteCond: input='' pattern='GLOBALS(=|\[|\%[0-9A-Z]{0,2})' => not-matched
192.168.2.100 - - [17/Apr/2011:00:21:24 +0200] [mysite.demo/sid#7fd523cfe6c8][rid#7fd523fee1b8/initial] (4) [perdir /var/www/mysite.demo/] RewriteCond: input='' pattern='_REQUEST(=|\[|\%[0-9A-Z]{0,2})' => not-matched
192.168.2.100 - - [17/Apr/2011:00:21:24 +0200] [mysite.demo/sid#7fd523cfe6c8][rid#7fd523fee1b8/initial] (3) [perdir /var/www/mysite.demo/] add path info postfix: /var/www/mysite.demo/en -> /var/www/mysite.demo/en/home
192.168.2.100 - - [17/Apr/2011:00:21:24 +0200] [mysite.demo/sid#7fd523cfe6c8][rid#7fd523fee1b8/initial] (3) [perdir /var/www/mysite.demo/] strip per-dir prefix: /var/www/mysite.demo/en/home -> en/home
192.168.2.100 - - [17/Apr/2011:00:21:24 +0200] [mysite.demo/sid#7fd523cfe6c8][rid#7fd523fee1b8/initial] (3) [perdir /var/www/mysite.demo/] applying pattern '(.*)' to uri 'en/home'
192.168.2.100 - - [17/Apr/2011:00:21:24 +0200] [mysite.demo/sid#7fd523cfe6c8][rid#7fd523fee1b8/initial] (4) [perdir /var/www/mysite.demo/] RewriteCond: input='/var/www/mysite.demo/en' pattern='!-f' => matched
192.168.2.100 - - [17/Apr/2011:00:21:24 +0200] [mysite.demo/sid#7fd523cfe6c8][rid#7fd523fee1b8/initial] (4) [perdir /var/www/mysite.demo/] RewriteCond: input='/var/www/mysite.demo/en' pattern='!-d' => matched
192.168.2.100 - - [17/Apr/2011:00:21:24 +0200] [mysite.demo/sid#7fd523cfe6c8][rid#7fd523fee1b8/initial] (4) [perdir /var/www/mysite.demo/] RewriteCond: input='/en/home' pattern='!^/index.php' => matched
192.168.2.100 - - [17/Apr/2011:00:21:24 +0200] [mysite.demo/sid#7fd523cfe6c8][rid#7fd523fee1b8/initial] (4) [perdir /var/www/mysite.demo/] RewriteCond: input='/en/home' pattern='(/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$' [NC] => matched
192.168.2.100 - - [17/Apr/2011:00:21:24 +0200] [mysite.demo/sid#7fd523cfe6c8][rid#7fd523fee1b8/initial] (2) [perdir /var/www/mysite.demo/] rewrite 'en/home' -> 'index.php'
192.168.2.100 - - [17/Apr/2011:00:21:24 +0200] [mysite.demo/sid#7fd523cfe6c8][rid#7fd523fee1b8/initial] (3) [perdir /var/www/mysite.demo/] add per-dir prefix: index.php -> /var/www/mysite.demo/index.php
192.168.2.100 - - [17/Apr/2011:00:21:24 +0200] [mysite.demo/sid#7fd523cfe6c8][rid#7fd523fee1b8/initial] (3) [perdir /var/www/mysite.demo/] add path info postfix: /var/www/mysite.demo/index.php -> /var/www/mysite.demo/index.php/home
192.168.2.100 - - [17/Apr/2011:00:21:24 +0200] [mysite.demo/sid#7fd523cfe6c8][rid#7fd523fee1b8/initial] (3) [perdir /var/www/mysite.demo/] strip per-dir prefix: /var/www/mysite.demo/index.php/home -> index.php/home
192.168.2.100 - - [17/Apr/2011:00:21:24 +0200] [mysite.demo/sid#7fd523cfe6c8][rid#7fd523fee1b8/initial] (3) [perdir /var/www/mysite.demo/] applying pattern '.*' to uri 'index.php/home'
192.168.2.100 - - [17/Apr/2011:00:21:24 +0200] [mysite.demo/sid#7fd523cfe6c8][rid#7fd523fee1b8/initial] (5) setting env variable 'HTTP_AUTHORIZATION' to ''
192.168.2.100 - - [17/Apr/2011:00:21:24 +0200] [mysite.demo/sid#7fd523cfe6c8][rid#7fd523fee1b8/initial] (2) [perdir /var/www/mysite.demo/] strip document_root prefix: /var/www/mysite.demo/index.php -> /index.php
192.168.2.100 - - [17/Apr/2011:00:21:24 +0200] [mysite.demo/sid#7fd523cfe6c8][rid#7fd523fee1b8/initial] (1) [perdir /var/www/mysite.demo/] internal redirect with /index.php [INTERNAL REDIRECT]
192.168.2.100 - - [17/Apr/2011:00:21:24 +0200] [mysite.demo/sid#7fd523cfe6c8][rid#7fd523feb188/initial/redir#1] (3) [perdir /var/www/mysite.demo/] strip per-dir prefix: /var/www/mysite.demo/index.php -> index.php
192.168.2.100 - - [17/Apr/2011:00:21:24 +0200] [mysite.demo/sid#7fd523cfe6c8][rid#7fd523feb188/initial/redir#1] (3) [perdir /var/www/mysite.demo/] applying pattern '^(.*)$' to uri 'index.php'
192.168.2.100 - - [17/Apr/2011:00:21:24 +0200] [mysite.demo/sid#7fd523cfe6c8][rid#7fd523feb188/initial/redir#1] (4) [perdir /var/www/mysite.demo/] RewriteCond: input='' pattern='mosConfig_[a-zA-Z_]{1,21}(=|\%3D)' => not-matched
192.168.2.100 - - [17/Apr/2011:00:21:24 +0200] [mysite.demo/sid#7fd523cfe6c8][rid#7fd523feb188/initial/redir#1] (4) [perdir /var/www/mysite.demo/] RewriteCond: input='' pattern='base64_encode.*\(.*\)' => not-matched
192.168.2.100 - - [17/Apr/2011:00:21:24 +0200] [mysite.demo/sid#7fd523cfe6c8][rid#7fd523feb188/initial/redir#1] (4) [perdir /var/www/mysite.demo/] RewriteCond: input='' pattern='(\<|%3C).*script.*(\>|%3E)' [NC] => not-matched
192.168.2.100 - - [17/Apr/2011:00:21:24 +0200] [mysite.demo/sid#7fd523cfe6c8][rid#7fd523feb188/initial/redir#1] (4) [perdir /var/www/mysite.demo/] RewriteCond: input='' pattern='GLOBALS(=|\[|\%[0-9A-Z]{0,2})' => not-matched
192.168.2.100 - - [17/Apr/2011:00:21:24 +0200] [mysite.demo/sid#7fd523cfe6c8][rid#7fd523feb188/initial/redir#1] (4) [perdir /var/www/mysite.demo/] RewriteCond: input='' pattern='_REQUEST(=|\[|\%[0-9A-Z]{0,2})' => not-matched
192.168.2.100 - - [17/Apr/2011:00:21:24 +0200] [mysite.demo/sid#7fd523cfe6c8][rid#7fd523feb188/initial/redir#1] (3) [perdir /var/www/mysite.demo/] strip per-dir prefix: /var/www/mysite.demo/index.php -> index.php
192.168.2.100 - - [17/Apr/2011:00:21:24 +0200] [mysite.demo/sid#7fd523cfe6c8][rid#7fd523feb188/initial/redir#1] (3) [perdir /var/www/mysite.demo/] applying pattern '(.*)' to uri 'index.php'
192.168.2.100 - - [17/Apr/2011:00:21:24 +0200] [mysite.demo/sid#7fd523cfe6c8][rid#7fd523feb188/initial/redir#1] (4) [perdir /var/www/mysite.demo/] RewriteCond: input='/var/www/mysite.demo/index.php' pattern='!-f' => not-matched
192.168.2.100 - - [17/Apr/2011:00:21:24 +0200] [mysite.demo/sid#7fd523cfe6c8][rid#7fd523feb188/initial/redir#1] (3) [perdir /var/www/mysite.demo/] strip per-dir prefix: /var/www/mysite.demo/index.php -> index.php
192.168.2.100 - - [17/Apr/2011:00:21:24 +0200] [mysite.demo/sid#7fd523cfe6c8][rid#7fd523feb188/initial/redir#1] (3) [perdir /var/www/mysite.demo/] applying pattern '.*' to uri 'index.php'
192.168.2.100 - - [17/Apr/2011:00:21:24 +0200] [mysite.demo/sid#7fd523cfe6c8][rid#7fd523feb188/initial/redir#1] (5) setting env variable 'HTTP_AUTHORIZATION' to ''
192.168.2.100 - - [17/Apr/2011:00:21:24 +0200] [mysite.demo/sid#7fd523cfe6c8][rid#7fd523feb188/initial/redir#1] (1) [perdir /var/www/mysite.demo/] pass through /var/www/mysite.demo/index.php
Автор: Cheery
Дата сообщения: 17.04.2011 01:32
Weinaum
ну так у вас куча других правил там, которые могут повлиять..
как видите, все срабатывает

Цитата:
192.168.2.100 - - [17/Apr/2011:00:21:24 +0200] [mysite.demo/sid#7fd523cfe6c8][rid#7fd523fee1b8/initial] (2) [perdir /var/www/mysite.demo/] rewrite 'en/home' -> 'index.php'

Автор: Weinaum
Дата сообщения: 17.04.2011 13:33
Cheery
ну да, я полагаю, как раз стандартные правила для joomla там и прописаны...
т.е. я сам туда ничего не прописывал, взял стандартный htaccess для joomla, который идет в комплекте.
Там по видимому так: те правила, которые там прописаны по дефолту, как раз и создают чпу- ссылки, типа mysite/home и все остальные, например, кнопка меню home на деле имеет реальный адрес вида http://mysite.demo/index.php?option=com_content&view=frontpage, а ее короткий чпу вид - http://mysite.demo/home видимо и получается путем добавления к http://mysite алиаса home(который мы сами выбираем и создаем по своему вкусу в joomla-вской админке) с помощью стандартного правила. И вот это стандартное правило срабатывает, и видимо перекрывает нужное...
Если я правильно понимаю, если отключить стандартное правило, то и вновь созданное не будет работать, ну только если вручную в адресной строке браузера написать http://mysite.demo/home - а по нажатию на кнопку меню такой ссылки не будет и нечего будет обрабатывать..
Наверное, чтобы все срабатывало, нужно как то переписывать стандартное joomla-вское правило? или еще как то?
На всякий случай, вот стандартный joomla-вский htaccess, новое правило я закомментировал пока,и в любом случае, спасибо за помощь.
[more]
Код: ##

# @version $Id: htaccess.txt 14401 2010-01-26 14:10:00Z louis $

# @package Joomla

# @copyright Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved.

# @license http://www.gnu.org/copyleft/gpl.html GNU/GPL

# Joomla! is Free Software

##





#####################################################

# READ THIS COMPLETELY IF YOU CHOOSE TO USE THIS FILE

#

# The line just below this section: 'Options +FollowSymLinks' may cause problems

# with some server configurations. It is required for use of mod_rewrite, but may already

# be set by your server administrator in a way that dissallows changing it in

# your .htaccess file. If using it causes your server to error out, comment it out (add # to

# beginning of line), reload your site in your browser and test your sef url's. If they work,

# it has been set by your server administrator and you do not need it set here.

#

#####################################################



## Can be commented out if causes errors, see notes above.

Options +FollowSymLinks



#

# mod_rewrite in use



RewriteEngine On



########## Begin - Rewrite rules to block out some common exploits

## If you experience problems on your site block out the operations listed below

## This attempts to block the most common type of exploit `attempts` to Joomla!

#

## Deny access to extension xml files (uncomment out to activate)

#<Files ~ "\.xml$">

#Order allow,deny

#Deny from all

#Satisfy all

#</Files>

## End of deny access to extension xml files

RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]

# Block out any script trying to base64_encode crap to send via URL

RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]

# Block out any script that includes a <script> tag in URL

RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]

# Block out any script trying to set a PHP GLOBALS variable via URL

RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]

# Block out any script trying to modify a _REQUEST variable via URL

RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})

# Send all blocked request to homepage with 403 Forbidden error!

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



#

########## End - Rewrite rules to block out some common exploits



# Uncomment following line if your webserver's URL

# is not directly related to physical file paths.

# Update Your Joomla! Directory (just / for root)



# RewriteBase /





########## Begin - Joomla! core SEF Section



RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_URI} !^/index.php

RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$ [NC]

RewriteRule (.*) index.php

RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
#RewriteCond %{REQUEST_URI} ^/[a-z0-9]{2}/ [NC]
#RewriteRule (.*) index.php [L]


#

########## End - Joomla! core SEF Section
Автор: Cheery
Дата сообщения: 18.04.2011 22:10
Weinaum
у вас дальше вот этого правила не пойдет


Цитата:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$  [NC]
RewriteRule (.*) index.php
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]



оно же и срабатывает на /en/home, так как нет такой папки или директории.
в общем непонятно тогда, чего вы пытаетесь добиться
Автор: Anton_Y
Дата сообщения: 20.04.2011 12:05
подскажите, что я делаю не так..
делаю алиас /share/, и хочу чтобы туда ходили юзеры только через https (с помощью mod_rewrite)
но нихрена не срабатывает модреврайт )) что не так?


Код:
Alias /share/ "/MYFOLDER/"
<Directory "/MYFOLDER">

RewriteEngine on
RewriteBase /
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

AuthPAM_Enabled on
AuthType basic
AuthName "rapdishare secure area"
Require user hyuser

AllowOverride All
Order allow,deny
Allow from all
</Directory>
Автор: Cheery
Дата сообщения: 20.04.2011 19:53
Anton_Y
а так?
RewriteCond %{SERVER_PORT} 80

Цитата:
^/(.*)

слэш пробовали убрать?
Автор: Anton_Y
Дата сообщения: 21.04.2011 12:10
Cheery
Гуд! Все заработало
Автор: Schtopt
Дата сообщения: 04.05.2011 17:22
Добрый день! У меня возникла проблема с редиректом на сайте.

В .htaccess с помощью mod_rewrite сделаны все ссылки так, чтобы не было видно параметров передаваемых php.
Сделано таким образом

RewriteRule (.*)\.html$ object.php?path=$1 [L]


На сайте еще необходимо сделать 301 редирект вида

RedirectMatch 301 ^/{категория}/(.*) хттп://{сайт}/catalog/{категория}/$1

Но при этом редиректе в url появляется хвост в виде параметров php

хттп://{сайт}/{категория}/{объект}.html -> хттп://{сайт}/catalog/{категория}/{объект}.html?path={объект}

Как можно избавиться от этого добавления?
Автор: Cheery
Дата сообщения: 04.05.2011 18:32
Schtopt

Цитата:
Как можно избавиться от этого добавления?

используйте rewriterule, а не redirectmatch
в нем тоже можно указать 301 заголовок.. например вот так [R=301,L]

либо смотрите порядок выполнения правил, что первым срабатывает, что вторым..
Автор: Schtopt
Дата сообщения: 04.05.2011 18:49
Я уже пробовал это делать через RewriteRule, результат тот же.

Мне советовали поставить это правило сразу после RewriteEngine on, однако это тоже не приводило ни к какому результату.

Вот весь листинг RewriteEngine

[no]
Options +FollowSymLinks
AddDefaultCharset utf-8
RewriteEngine on

RedirectMatch 301 ^(.*)/index.html хттп://{сайт}$1
RedirectMatch 301 ^/dushevye_kabiny/(.*) хттп://{сайт}/catalog/dushevye_kabiny/$1
...

RewriteCond %{HTTP_HOST} ^www\.{сайт2}\.{дм}$ [NC,OR]
RewriteCond %{HTTP_HOST} ^{сайт2}\.{дм}$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www\.{сайт}\.{дм}$ [NC]
RewriteRule ^(.*)$ хттп://{сайт}/$1 [R=301,L]

RewriteRule ^(.*)/(.*)\.html$ object.php?path=$2 [L]
RewriteRule (.*)\.html$ object.php?path=$1 [L]
RewriteRule (.*)\.(.*) $1.$2 [L]

RewriteCond %{DOCUMENT_ROOT}/$1 -f [OR]
RewriteCond %{DOCUMENT_ROOT}/$1 -d
RewriteRule (.*) - [S=2]

RewriteRule ^(.*)$ /page.php [L]

Redirect 301 /dushevye_kabiny/spisok_vseh_tovarov.html хттп://{сайт}/catalog/dushevye_kabiny/
...
[/no]
Автор: kolkazzz
Дата сообщения: 10.05.2011 05:27
Такая проблема,

Есть такой файл .htaccess

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !parse
RewriteRule . /index.php [L]
</IfModule>

есть подкаталог papka
пытаюсь защитить его

AuthName "user"
AuthType Basic
require valid-user
AuthUserFile "/home/user/.htpasswds/passwd"


как только добавляю пароль на папку, сразу перестают работать лежащие в ней скрипты.
отключаю и снова все нормально.
те когда врубаю авторизацию мод_реврайт какбы "игнорит"
RewriteCond %{REQUEST_FILENAME} !-d
и перенаправлят на index.php
Автор: vegaweb
Дата сообщения: 11.05.2011 18:46
у меня такая ситуевина:
был прописан мод рерайт, который делал ссылки вида: page/my_page/
сейчас я захотел сделать page/my_page.html
сделать сделать, но не могу понять как верно прописать редирект
пробовал что то типа

Код:
redirect page/(.*)/ page/$1.html
Автор: substrackto
Дата сообщения: 11.05.2011 18:50

Цитата:
Код:
redirect page/(.*)/ page/$1.html


не работает.. буду признателен за помощь.

Так ты же перенаправляешь на реальную страницу, тебе нужно наоборот прописать:
если пользователь запрашивает "page/$1.html" то показывать "page/(.*)/"
Автор: vegaweb
Дата сообщения: 11.05.2011 19:00

Цитата:
Так ты же перенаправляешь на реальную страницу

и новое и старое идет через рерайт

Цитата:
тебе нужно наоборот прописать

это вы наверно про мод рерайт говорите, а я хочу через редирект поисковикам делать редирект на новые урлы
Автор: Schtopt
Дата сообщения: 11.05.2011 19:18
@substrackto, если я правильно понял, ему нужен редирект со старых страниц на новые, а не наоборот.

@vegaweb, попробуй
RedirectMatch 301 ^(.*)page/(.*)/$ http://{твой_сайт}/page/$2.html

Адрес, куда пенаправляешь, нужно писать полностью.
Автор: vegaweb
Дата сообщения: 11.05.2011 19:23
Schtopt

попробовал
получил
http://site.ru/page/reklama_na_sajte.html?id=reklama_na_sajte
Автор: Schtopt
Дата сообщения: 11.05.2011 19:38
Оу, у меня тоже была подобная проблема. (Несколько сообщений выше)

Смотри правила RewriteRule, чтобы там совпадала вложенность, т.е. для

RedirectMatch 301 ^(.*)page/(.*)/$ http://{твой_сайт}/page/$2.html

нужно

RewriteRule ^page/(.*)\.html$ {здесь твоя пхп станица с параметром} [L]

Пробуй.

P.S. Чтобы не было этого хвоста нужно, чтобы количество слешей здесь

http://{твой_сайт}/page/$2.html

и здесь

^page/(.*)\.html$

совпадало, но учти что во второй части путь указывается без основного хоста (без http://{твой_сайт})
Автор: vegaweb
Дата сообщения: 11.05.2011 20:28
Ох, чето я ниче не понял...

Цитата:
Адрес, куда пенаправляешь, нужно писать полностью.

и

Цитата:
но учти что во второй части путь указывается без основного хоста

??
можешь пример живого правила показать?
Автор: Schtopt
Дата сообщения: 11.05.2011 20:33
В
RedirectMatch 301 {откуда} {куда} и Redirect 301 {откуда} {куда}

в поле {куда} нужно писать адрес вместе с http://{твой_сайт}

А в правиле RewriteRule {что} {на что}

в поле {на что} страница пишется без http://{твой_сайт}

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445

Предыдущая тема: PHP: Регулярные выражения (RegExp, Regular, eregi, preg)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.