.htaccess не пускает робота.txt через
У меня есть следующее .файл htaccess в корне:
Options +FollowSymlinks
RewriteEngine on
RewriteBase /
RewriteRule ^(.*)/(?.*)?$ $1$2 [R=301,L]
RewriteRule ^([^/]*)$ index.php?page=$1 [NC]
Это работает как должно для сокращения всех моих URL-адресов до website.com/something
Проблема в том, что Google не может найти мой файлrobots.txt
в корне. Вышеупомянутый файл не пропускает его. когда он печатает website.com/robots.txt я получаю 404 не найден. Но если я закомментирую приведенный выше код .htaccess
, я могу добраться до него просто отлично.
Как я могу отредактировать мой файл .htaccess
, чтобы пропустить robots.txt
, не вмешиваясь в мой другой URL-адреса?
4 ответа:
RewriteEngine on RewriteRule ^robots.txt - [L]
Вторая строка исключает роботов.txt из правил перезаписи URL . Попробуйте выше код
Вы можете использовать это решение в своем .htaccess файл:
Options +FollowSymlinks RewriteEngine on RewriteBase / RewriteCond $1 !^(index\.php|images|robots\.txt) RewriteRule ^(.*)$ index.php?page=$1 [L]
Это перезаписывает все ваши запросы на индексацию.php?page=, кроме файлов, указанных в списке
RewriteCond
.
Я попробовал оба предложения, и они оба отлично работают. Однако я пошел с ответом Кирана просто потому, что это более короткий синтаксис. Вот с чем я в итоге столкнулся.
Options +FollowSymlinks RewriteEngine on RewriteBase / # remove trailing slash RewriteRule ^(.*)\/(\?.*)?$ $1$2 [R=301,L] # Allow Robots.txt to pass through RewriteRule ^robots.txt - [L] RewriteRule ^([^/]*)$ index.php?page=$1 [NC]