Что-то с файлом .htaccess.
На локалке тоже вначале так было. Я не заметил, что надо заменить остальные правила ВП. Просто добавил новые в этот файл. А когда именно заменил всё то, что надоходится между метками # BEGIN WordPress и # END WordPress сразу всё заработало. Но то на локалке. А в моём блоге этих правил гораздо больше. Есть раздел между метками # BEGIN WordPress и # END WordPress, но есть и другие правила… Не все же надо было заменить? Или как?
Не все же надо было заменить? Или как?
Думаю, надо бы показать содержимое хтацесса. А то ведь вызов телепатов нонче оч. дорогой 😉
Вот, весь .htaccess с заменённым фрагментом (выделен; телепатов же нет) `# BULLETPROOF .46.8 >>>>>>> SECURE .HTACCESS
# If you edit the BULLETPROOF .46.8 >>>>>>> SECURE .HTACCESS text above
# you will see error messages on the BPS Security Status page
# BPS is reading the version number in the htaccess file to validate checks
# If you would like to change what is displayed above you
# will need to edit the BPS /includes/functions.php file to match your changes
# If you update your WordPress Permalinks the code between BEGIN WordPress and
# END WordPress is replaced by WP htaccess code.
# BEGIN WordPress
<IfModule mod_rewrite.c>
<strong>RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ — [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</strong></IfModule>
# END WordPress
# This removes all of the BPS security code and replaces it with just the default WP htaccess code
# To restore this file use BPS Restore or activate BulletProof Mode for your Root folder again.
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ — [L]
# uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ — [L]
RewriteRule ^[_0-9a-zA-Z-]+/(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^[_0-9a-zA-Z-]+/(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
# END WordPress
# BLOCK HOTLINKING TO IMAGES
# To Test that your Hotlinking protection is working visit http://altlab.com/htaccess_tutorial.html
#RewriteEngine On
#RewriteCond %{HTTP_REFERER} !^https?://(www\.)?add-your-domain-here\.com [NC]
#RewriteCond %{HTTP_REFERER} !^$
#RewriteRule .*\.(jpeg|jpg|gif|bmp|png)$ — [F]
# BLOCK MORE BAD BOTS RIPPERS AND OFFLINE BROWSERS
# If you would like to block more bad bots you can get a blacklist from
# http://perishablepress.com/press/2007/06/28/ultimate-htaccess-blacklist/
# You should monitor your site very closely for at least a week if you add a bad bots list
# to see if any website traffic problems or other problems occur.
# Copy and paste your bad bots user agent code list directly below.`
М-да… Стронг не хочет выделять…
Модератор
Yuri
(@yube)
Совершенно нечитабельно ( А раз так, то и не буду читать. Ограничусь банальностями общего характера.
1. Правила .htaccess, в том числе и RewriteCond/RewriteRule, выполняются Апачем последовательно.
2. Флаг [L] означает Last (последний), то есть, если правило с этим флагом сыграло, то все последующие игнорируются.
Вывод: собирая .htaccess, надо заботиться о правильной последовательности.
Флаг [L] означает Last (последний), то есть, если правило с этим флагом сыграло, то все последующие игнорируются.
Спасибо! Уже шажок в нужном направлении.
Но ещё хотелось бы уточнить, откуда они туда набиваются? Помню сам туда добавлял, но только одну строчку. У вновь установленного ВордПресса этих строчек 7-8… А остальные. Установщики тем и плагинов сами добавляют? И можно ли этот файл как-то оптимизировать?
Что-то не то… Там этих ластов с десяток, но это, возможно, капитально замусоренный файл. А вот из Кодекса (раздел по установке сети):
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Кусок, который нужно добавить в файл .htaccess. В нём два L. Но двух последних быть не может. Так?.. Тогда как это понимать?
Кусок, который нужно добавить в файл .htaccess.
Не нужен он там при сетевой установки.
См мануал: http://codex.wordpress.org/%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D1%81%D0%B5%D1%82%D0%B8#.htaccess_.D0.B8_Mod_Rewrite
Да, изначально я не обратил внимание на строки:
Блогу больше года. Страничка для выбора «поддомены или подкаталоги?» мне не открылась. Но был комментарий, мол, блог старый и в варианте с подкаталогами не будут правильно работать ссылки, поэтому Вам только вариант с поддоменами. А мне он не нравится!
Не знаю, как отреагирует ВП после переноса настроек с денвера.
Модератор
Yuri
(@yube)
[L] не вообще последний, а для связки условия+правило. Если условия выполнились, срабатывает правило. Если правило с флагом L, то дальше условия не проверяются.
Блок
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
означает: если нет запрошенного файла (-f) и директории (-d), открыть(выполнить — ибо php) /index.php и прекратить обработку. То есть, никакое правило для «виртуального» (реально не существующего) файла, идущее после этого блока, выполняться не будет.
Установщики тем и плагинов сами добавляют?
Бывает.
И можно ли этот файл как-то оптимизировать?
Даже нужно. Все свои инструкции нужно добавлять до блока # BEGIN WordPress — # END WordPress. После — могут не сработать, внутри — WP может грохнуть, перезаписывая свой блок.
Чтобы после доведения до ума туда ничего не писалось, можно поставить на файл права 444.
Неплохая дока по реврайтам: http://www.shtogrin.com/library/web/mod_rewrite/doc/
Ну, вот. Сейчас у меня .htaccess такой:
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^[_0-9a-zA-Z-]+/(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^[_0-9a-zA-Z-]+/(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
# END WordPress
А всё равно сайты не добавляются!.. В смысле не появляются в списке, где каждый сайт помечен логотипом ВордПресса. И не отображаются на экране. Хотя в разделе Управления сетью значатся как живые… Что в этом файле неправильно?