На днях пришлось ставить WordPress 2.0.4 на хостинг NetFirms. Стокнулся я там с такой маленькой проблемой: если permalink установить в режим /%postname%/
WordPress их совсем не видит. Вообще, любой режим, кроме по умолчанию, не работает. Как оказалось, PHP 4-ой версии там установлен как CGI и, при включенной поддержке .htaccess (их поддержка для хоста по умолчанию выклячена и её нужно включать через Control Panel) и mod_rewrite, в переменных окружения нет ни малейшего упоминания о том, что находиться в адресной строке. Не приятно очень, подумал я, а «клиента» не устраивала классическая (по умолчанию) структура permalink, а вид /index.php/%postname%/
тоже никто не хотел. Дальнейшие эксперименты показали, что на сервере прекрастно поддерживалась работа в «режиме» MultiViews и WordPress в таком режиме прекрастно работает.
Чтож, подумал я, раз есть mod_rewrite и поддержка MultiViews да и WordPress всё это поддерживает, почему бы не переписать стандартный RewriteRule . /index.php [L]
на свой, так, что-бы использовался MultiViews. В итоге мы получили RewriteRule ^(.*)$ /index.php/$1 [L,QSA]
. Запретив права записи в этот файл, мы получили желанный результат. Даже не смотря на то, что в настройках permalink было /%postname%/
, а WordPress получал /index.php/%postname%/
. Так как, всё чудестным способом заработало – все были довольны!
Что будет, скажите вы, если «клиент» захочет поменять структуру permalink? Возможно всё развалиться, но «клиент» предупреждён, да и структуру permalink он менять наврятли будет – я не превый раз ставлю для него WordPress, и это его самая самая излюблення конфигурация. Хотя, он без меня, на такие резкие шаги не пойдёт, дизайн сменит обязательно, а вот в структуре системы кардинально менять не будет ничего.
Что я могу сказать о хостинге NetFirms? А практически ничего. Я вошёл, разобрался во всём (долго привыкал к их Control Panel), установил то, что просили, всё заработало и почти никакой головной боли. По крайней мере пока головной боли нет.
Здравствуйте!
Нашел Ваш пост поисковиком по permalinks.
Вы описали в точности мою проблему, я ставлю себе вордпресс и кроме дефолтного вида линков ничего не работает (при наведении на линк видно что адреса сменились, но по нажатию они никуда не ведут).
Я не программист и не понял разрешения этой проблемы, не могли бы Вы описать пошагово где что заменить?
Заранее спасибо.
Если у вас на сервере стоит Apache и на нём включен mod_rewrite, то WordPress, при включении permalinks не по умолчанию, в корне своей установки должен генерировать файл .htaccess (на некоторых хостингах он не виден). Именно в этом файле нужно заменить строку “RewriteRule . /index.php [L]” на “RewriteRule ^(.*)$ /index.php/$1 [L,QSA]”.
Правдa, одной из причин, по которой у вас не работают permalinks не по умолчанию – уровень безопастности на сервере. Очень часто PHP установлен как модуль Apache, и не может создавать сам файлы в каталоге пользователя, пока на это не получит разрешение (при такой установки, PHP пишет на диск от пользователя www, а в некоторых случаях и от nobody). Поэтому, если вы уверены, что .htaccess не создаётся именно по этой причине, просто загрузите на сервер пустой файл с именем .htaccess и поставте права на него: rw-rw-rw (0666). Да, имейте ввиду, что на некоторых хостингах, с некоторыми FTP клиентами не видны .htaccess файлы – смените FTP клиент, воспользуйтесь SSH, или обратитесь за помощью к хостеру.
Большое спасибо!
Оказалось все намного проще. В панели управления доменами была выключена опция allow_override.
Провайдер подсказал включить ее и все заработало.
Да, свтречаются такие хостинги, где всё по умочанию отключено и приходиться самим лазить по панелям управляния и включать.
Но это не самый лохой случай – бывает что забывают вообще на всё сервере включить mod_rewrite, или у меня был случай, что для того чтобы сменить права на какой-либо файл, нужно было обязательно обращаться к администратору – SSH небыло, FTP этого делать не мог.
Хочу поставить WordPress, а как закачать скрипт на сайт не знаю. Через фтп – долго, через панель – ещё дольше получится, там столько папок и файлов. Скрипт большой однако. Ещё такие никогда не закачивал. Было бы здорово сразу на сайт закачать, а не сначала на мой комп. А как там разархивировать(на сервере)?
Если вам не приходилось закачивать такой большой “скрипт” на сервер, я не думаю, что мои указания будут ценными для вас – для такой операции понадобятся знания и умения работы с Unix/Linux SHELL.
Если у вас на хостинге есть SSH, то при помощи cURL или wget (или другого подобоного ПО) можете скачать прямо на хостинг архив WordPress в формате .tar.gz (хорошо, скачать себе, а потом по FTP загрузить туда), а потом его разархивировать прямо на хостинге при помощи gzip (gzip Wikipedia) и tar (tar Wikipedia) архиваторов.
Если данные слова вам ни о чём не говорят, советую закачивать файлы по одному – это не самый большой “скрипт”, который существует в Интернете.
А вы пробовали установать Ruby on Rails на netfirms.com?
Я пробовал полностью как по их инструкции простейшее приложение, но облом полный.
“/mnt/b0174337/www/railsapp”
даёт 403 – Access denied to “/nfrubyrails/dispatch.rb”.
Ну, я перебарщиваю с chmod 755 прямо на всю директорию
“nfrubyrails” и теперь нет ошибки доступа, но есть другая
Routing Error
Recognition failed for “/railsapp”,
если браузером если смотреть
http://.ru/railsapp,
или
Routing Error
Recognition failed for “/”
если иду на http://.ru/.
Конечно, в Control panel все правильно редирекция стоит.
По их инструкции, “мой домен.ru” перенаправлен на “/railsapp/nfrubyrails/”, используя “Domain Manager”.
Может быть вы можете подсказать, или знаете, кто успешно пробовал.
Да, .htaccess у меня включён через Control Panel ихнюю.
С уваж.,
Даня
Нет, не пробовал.