Конфликт в .htaccess при добавлении редиректа 301 - PullRequest
0 голосов
/ 20 января 2011

У меня проблемы с добавлением некоторых команд в мой старый .htaccess в корневой папке: До:

AddDefaultCharset utf-8
DirectoryIndex category.php index.php
Options -Indexes

RewriteEngine On
RewriteBase /

RewriteRule ^search/$ category.php?category=search&%{QUERY_STRING} [L]
RewriteRule ^module_([A-Za-z0-9]+)/?([^/\.]*)/?([^/\.]*)/?([^/\.]*)/?$ module.php?class=$1&pv1=$2&pv2=$3&pv3=$4 [L]
RewriteRule ^((print)_)?([^/\.]+)/?([^/\.]*)/?([^/\.]*)/?([^/\.]*)/?$ category.php?category=$3&id_module=$4&pv1=$5&pv2=$6&showtype=$2

php_value magic_quotes_gpc 0
php_value upload_max_filesize 52428800
php_value error_reporting 6135
php_value session.cookie_lifetime 86400

После добавления этой строки:

Redirect 301 /sect_25/ /stati/126/12/#read
Redirect 301 /sect_24/ /stati/126/9/#read
Redirect 301 /sect_23/ /stati/126/10/#read
Redirect 301 /articles/sect_19/ /stati/126/13/#read

Страница больше не доступна: Сервер обнаружил внутреннюю ошибку или неверную конфигурацию и не смог выполнить ваш запрос. Помогите кому-нибудь, пожалуйста!

Ответы [ 2 ]

1 голос
/ 20 января 2011

Вы не должны смешивать mod_rewrite и mod_alias (Redirect);используйте только один из них, чтобы избежать конфликтов.Вы можете, например, превратить свои директивы Redirect в директивы RewriteRule:

RewriteRule ^sect_25/ /stati/126/12/#read [L,R=301]
RewriteRule ^sect_24/ /stati/126/9/#read [L,R=301]
RewriteRule ^sect_23/ /stati/126/10/#read [L,R=301]
RewriteRule ^articles/sect_19/ /stati/126/13/#read [L,R=301]

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

0 голосов
/ 20 января 2011

Полагаю, что второй URL должен быть полным:

Redirect 301 /sect_25/ http://your.domain.tld/stati/126/12/#read
...