2017-01-13 3 views
0

У меня есть следующий в моем файле .htaccess:Htaccess - Исключить слово из существующих переписывает

# drop tags 
#RewriteCond %{THE_REQUEST} (.*)designs/(.*)/?tag=shirts [NC] 
#RewriteRule .* /designs/%2/ [R=301,L] 
RewriteCond %{THE_REQUEST} (.*)designs/([^?]+)\?tag=[^&]* [NC] 
RewriteRule .* /designs/%2? [R=301,L] 

# external redirect from actual URL to pretty one 
RewriteCond %{THE_REQUEST} \s/+product/search/\?tag=([^\s&]+) [NC] 
RewriteRule^/%1/? [R=301,L,NE] 

# internal forward from pretty URL to actual one 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !^/designs/ [NC] 
RewriteRule ^([^/]+)/?$ product/search/?tag=$1 [L,QSA] 

RewriteCond %{QUERY_STRING} ^search= [NC] 
RewriteRule ^designs/.*$ /$0? [L,R=301,NC] 

RewriteCond %{QUERY_STRING} ^mfp= [NC] 
RewriteRule ^designs/ %{REQUEST_URI}? [L,NC,R=301,NE] 

Моя тема поддерживает блог, но после включения его (он по умолчанию example.com/blog/), когда я нажмите на ссылку в блоге в моем меню, она доставит меня на страницу, в которой говорится: «Нет продукта, который соответствует критериям поиска». Когда я удаляю перечисленные выше правила htaccess, страница блога (которая содержит списки статей) отлично работает, поэтому это определенно.

Как я могу исключить слово «блог» из правил htaccess, чтобы этот вопрос не исчез?

ответ

0

Мне удалось исправить это через пару часов возиться. Раствор был:

# external redirect from actual URL to pretty one 
RewriteCond %{REQUEST_URI} !^/blog($|/)$ 
RewriteCond %{THE_REQUEST} \s/+product/search/\?tag=([^\s&]+) [NC] 
RewriteRule^/%1/? [R=301,L,NE] 

# internal forward from pretty URL to actual one 
RewriteCond %{REQUEST_URI} !^/blog($|/)$ 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !^/designs/ [NC] 
RewriteRule ^([^/]+)/?$ product/search/?tag=$1 [L,QSA] 

Это решение также обрабатывает/блог (без трейлинга /).

Надежда, которая помогает кому-то в будущем.

Смежные вопросы