apache rewritemap не работает URL не переводится

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

У меня есть следующее в моем httpd.conf и взял перезагрузку apache

RewriteMap ErrorMap txt:/usr/local/apache/conf/userdata/std/1/techencl/site.com/vb2xf.map

Карта перезаписи имеет следующую запись (редактируется после подсказки в первом ответе)

corner/lock-unlock-140859.html http://www.site.com/com/ts/lock-unlock.70898/

.Htaccess в корневом каталоге имеет следующую запись

RewriteCond ${ErrorMap:$1|NOT_FOUND} !NOT_FOUND
RewriteRule ^(.*)$ ${ErrorMap:$1|$1} [R=301]

Изменить: Просто опубликовать мое текущее содержимое файла.htaccess для справки

<IfModule mod_rewrite.c>
    RewriteEngine On

RewriteRule [^/]+/.+-([\d]+)/p([\d]+)/ showthread.php?t=$1&page=$2 [NC,L]
RewriteRule [^/]+/.+-([\d]+)/ showthread.php?t=$1 [NC,L]


Options +FollowSymlinks
rewritecond %{http_host} ^domain.com [nc]
rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc] 

RewriteCond ${ErrorMap:$1|NOT_FOUND} !NOT_FOUND
RewriteRule ^(.*)$ ${ErrorMap:$1|$1} [R=301]
</IfModule>

1 ответ

Когда вы вызываете карту:

${ErrorMap:$1

$1 никогда не будет иметь http://www.site.com/ в этом. У него будет только эта часть:

corner/lock-unlock-140859.html

Это означает, что на вашей карте вы должны сделать так, чтобы это выглядело так:

corner/lock-unlock-140859.html http://www.site.com/com/ts/lock-unlock.70898/
Другие вопросы по тегам