Вацура

Рейтинг
0
Регистрация
26.06.2012
Chukcha:
Еще раз...
RedirectMatch 301 (.*)\.html$ http://www.site.ru$1/
Этот код у Вас не работает
читайте
http://www.askapache.com/htaccess/301-redirect-with-mod_rewrite-or-redirectmatch.html

Прочитал, но видимо без хороших знаний правил написания команд для .htaccess, я не понял как мне это может помочь?

И что Вы подразумеваете когда говорите

Этот код у Вас не работает

?

Могу написать Вам в приват адрес сайта, возможно тогда мы будем лучше понимать друг друга?

Chukcha:
не поверите...
принцип работы
RewriteCond %{REQUEST_FILENAME} !-f

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


и
RewriteCond %{REQUEST_FILENAME} !-f

...
...
RewriteRule (.+) $1/ [R=301,L]

Один и тот же. ( а говорите, что понимаете)

Кроме того
что-то сильно сомневаюсь, что вот это
у Вас правильно работает
RedirectMatch 301 (.*)\.html$ http://www.site.ru$1/

Без

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !-f
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_URI} !.html$
RewriteCond %{REQUEST_URI} !.php$
RewriteRule (.+) $1/ [R=301,L]

склейка без слеша и со слешем не работала.

Эта строка:

RedirectMatch 301 (.*)\.html$ http://www.site.ru$1/

Склеивает страницу с .html к странице со слешем. Все работает.

Эти две строки:

RewriteCond %{REQUEST_FILENAME} !-f

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

Как я написал выше добавлял не я и как они работаю незнаю, но точно не скливают без слеша и слеш. т.к. они были до того как я начал дописывать .htaccess и склейка не работала.

---------- Добавлено 26.06.2012 в 21:41 ----------

Хотя, изначально эта строка

RedirectMatch 301 (.*)\.html$ http://www.site.ru$1/

выглядела так:

RedirectMatch 301 (.*)\.html$ http://www.site.ru$1.php
Chukcha:
если вы писали это сами, то можете рассказать, что вы хотели добиться, или Вы просто тупо скопировали, а оно не работает
Расскажите, как это работает

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !-f
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_URI} !.html$
RewriteCond %{REQUEST_URI} !.php$
RewriteRule (.+) $1/ [R=301,L]

RedirectMatch 301 (.*)\.html$ http://www.site.ru$1/


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

Вот взять построчно и откомментировать...

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

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

Незнаю как работает этот кусок, его добавлял не я:

RewriteCond %{REQUEST_FILENAME} !-f

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

Вот что есть в файле


php_value memory_limit 128M


RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !-f
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_URI} !.html$
RewriteCond %{REQUEST_URI} !.php$
RewriteRule (.+) $1/ [R=301,L]

RedirectMatch 301 (.*)\.html$ http://www.site.ru$1/



#RewriteCond %{REQUEST_URI} ^(.*)\.html$
#RewriteRule ^(.*)$ %1/ [R=301,L]

# If requested file doesn't exist
RewriteCond %{REQUEST_FILENAME} !-f

# If requested folder doesn't exist
#RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
RewriteRule ^(.*)$ index.php [L]
<Files "cronstart.php">
Order Deny,Allow
Deny from all
</Files>
<Files "cmspath.php">
Order Deny,Allow
Deny from all
</Files>
<Files "getrights.php">
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
</Files>