2014-06-05 4 views
1

Меня интересует , за исключением некоторых документов от индексации на search engines, поэтому я использую X-Robots-Tag для его достижения. Тем не менее, мне нужно иметь регулярное выражение, которое будет выбирать документы в пределах определенной директивы, то есть secret document в моем случае.Регулярные выражения для htaccess

Для примера

/dir1/dir2/secret documents/file1.pdf 
    /dira/dir1/dir2/secret documents/file2.pdf 
    /dir1a/secret documents/file3.pdf 
    /dir1a/other documents/file4.pdf 

Как вы можете видеть, может быть любое количество каталогов на левой стороне, но последний каталог, если есть «секретные документы», я хочу, чтобы запретить его, используя следующий код htaccess.

Regular Expression

RegEx должен вписываться в ниже

<Files ~ "\.pdf$"> 
    Header set X-Robots-Tag "noindex, nofollow" 
</Files> 

ответ

1

Вы можете использовать:

<Files ~ "secret\ documents/.+?\.pdf$"> 
    Header set X-Robots-Tag "noindex, nofollow" 
</Files> 
+0

Спасибо @anubhava, не могли бы вы объяснить, что делает ваше выражение reg? –

+1

Да, конечно. 'secret \ documents /.+? \. pdf $' соответствует литеральному тексту 'секретные документы /', за которым следуют 1 или более символов длины (имя файла pdf), а затем буквальный '.pdf'. – anubhava

+1

'' secret \ documents/\ w + \. Pdf $ "' также будет работать, но он не будет соответствовать именам файлов, например '' secret documents/some-file.pdf $ '', поскольку' \ w' не соответствует дефис. – anubhava

1
<Files ~ "secret\ documents\/.+?\.pdf$"> 
    Header set X-Robots-Tag "noindex, nofollow" 
</Files> 

Не забудьте избежать слэш после документов.

+0

Слишком короткую косую черту не нужно удалять в большинстве регулярных выражений Apache. – anubhava

+0

А, мои извинения! – Aaron

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