К примеру кладу pdf файл в корневую сайта, делаю линк на него типа Some description
А в итоге по подсказке линка выглядит как localhost/node/somefile.pdf и естественно "page not found".
Пытался искать решение гуглом, но такое впечатление что больше ни у кого таких проблем нет. Есть какие-то правила на создание таких линков без использования специальных модулей?
Комментарии
попробуйте вбить полный путь.
полный типа http://localhost/somefile.pdf работает, но наверно не самое умное решение потом все такие линки исправлять после загрузки на сайт.
Если создавать путь в редакторе, то разве нельзя указать "/myfolder/myfile.ext" (путь к файлу http://mysite/myfolder/myfile.ext)? т.е. просто слеш вначале?
Если создавать внутри модуля, то надо смотреть в сторону [ru-api=file_create_url]file_create_url()[/ru-api]. Файл должен лежать в файловой директории! Ф-ия учитывает публичный/приватный варианты.
я хоть о нужном подумал?)
Сыслочка нужна на файл лежащий в корне сайта. Ставим слэш.
Например: Скачать по ссылке
Скачать по <a href="/blank.rar">ссылке</a>
Ну а если вы не ставите слэш, то ссылочка станет вида http://сайт/страница на которой ссылка/ваш файл
ЗЫ. На ссылку не жать, нет такого файла в корневой папке этого сайта, просто для наглядности делал.
Хы, наши кони тихо скачут, простите за флуд. Но пока я отвечал с моим тормозным(сегодня) инетом аналогичный ответ уже появился
Ничего вышесказанное не помогает. Таже самая проблема. Ссылка переносит на страницу вместо файла, точнее на страницу "Страница не найдена". Есть ли какая возможность создать ссылку на файл? С помощью модулей создать ссылку не получается, так как стоит ограничение в 2М. Нужно перепрописать php.ini Вся беда в том что я уже залил порядочное количество файлов через FTP и думал просто создать на них ссылки. Не тут-то было.
Неужели слэш не помогает - "/somefile.pdf" вместо "somefile.pdf" совсем-совсем ни на что не влияет? А все остальные внутренние ссылки нормально работают?
А в settings.php какой-нибудь base_url насильственно не прописан?
(Кстати говоря, хранить кучу файлов в корневой директории сайта - не очень хорошая идея).
Нет, никакие слэшы, к сожалению, не помогают. Происходит переход на другую страницу(node). В общем-то settings.php я не трогал. Если не сложно подскажите, пожалуйста, что там должно быть или наоборот не должно. И еще какой еще вариант хранения файлов может быть. Думаю, если не решу проблему, придется отказаться от Drupal.
А внутренние ссылки не на файлы, а на другие страницы работают нормально, или тоже не работают? От слэша зависят или нет?
Если settings.php не трогали, то и не трогайте.
Попробуйте заодно вообще без Друпала - создайте на вашем сервере простой html-файл, пропишите в нём ссылки на ваши PDF-файлы, откройте браузером и посмотрите, открываются ссылки или нет. Может, это проблема не с Друпалом, а с сервером или браузером.
«Думаю, если не решу проблему, придется отказаться от Drupal.»
В своё время по телевизору крутили назойливую рекламу, в которой известный футболист радостно заявлял: "Каждая игра отнимает много сил. Но я для себя эту проблему решил: Сникерс — и все в полном порядке!".
КВНщики пародировали эту рекламу примерно так: "Каждая игра отнимает много сил. Но я нашёл решение этой проблемы - я больше не играю в футбол!". (И действительно - футболист к тому времени как раз решил закончить с большим спортом).
В общем, подумайте.
похожие грабли: пытаюсь в админке добавить новую менюшку, ссылающуюся на каталог /soft в корне сайта. А мне в ответ "Ссылка '/soft' введена неправильно или у Вас нет доступа к этому ресурсу." Права есть и ссылка верная, ранее ссылки в блокноте в html так и писал и всё работало
Ссылка прямо на каталог, не на конкретный файл?
По умолчанию, такие ссылки в Друпале и не должны работать по вполне понятной причине - поэтому в .htaccess и прописано
# Don't show directory listings for URLs which map to a directory.
Options -Indexes
ну просто я в этот какталог сваливал всякие проги, когда меня кто то просил и люди их оттуда забирали без лишних примудростей. Так значит .htaccess подправить?
и что там надо поставить после Options = ?
Такие ссылки нужно прописывать в "полном формате" - не просто soft, а именно http://ваш_сайт.ру/soft/
а ссылку на конкретный файл тоже прописывать в полном формате?
сделал абсолютную ссылку, а мне:
You don't have permission to access /soft/ on this server.
всё, понял, закоментил строчку в .htaccess, спасибо за разъяснения
В смысле в корневой директории?
Ну и как теперь - содержимое /sites/default/ уже всем видно?
Options -Indexes
Не рекомендую менять.
А иначе действительно, я уведу ваш сайт полностью.
А если у вас там в какой-нибудь папочке лежат бэкапы базы
Тогда у меня будет полная копия вашего сайта...
DirectoryIndex index.php
Это по умолчанию.
Рекомендуют:
DirectoryIndex index.php index.html index.htm
И положить в вашу произвольную директорию пустой файл index.html.
Будет еще лучше не пустой, а с понятным отображаемым содержанием.
А ссылки для скачивания все таки пишите в таком виде /папка/файл
а если у меня в этом каталоге сотни файлов, которые меня просят выкладывать и этот список постоянно меняется, мне что каждый раз аниматься переписыванием линков на файлы?
А как можно скрыть пункт меню (Основного меню) от всех пользователей, кроме админа?
Попробуйте использовать импорт файлов или менеджер файлов А еще поищите на drupal.org, наверняка что-нить найдете.
Я бы попробовал передвинуть эти файлы из корневой директории в какую-нибудь конкретную, создать в ней отдельный .htaccess файл, и в нём разрешить directory listing и что ещё потребуется. А от мысли о сотнях файлов, лежащих прямо в корневой директории, меня, честно говоря, несколько передёргивает.
Меня от такого тоже коробит, я же не утверждал про сотни файлов в корне сайта!!!Они в папке /soft !!!
по-подробнее можно, что добавить в .htaccess лежащем в папке, содержимое которой я хотел бы открыть
Я сам не пробовал, но по идее, если "-" запрещает Directory listing, то "+" должен разрешать.
Indexes
Sometimes, when you request a directory with no index file (index.php, default.asp etc.), you will instead see a directory listing of all the public files in the current directory. For a lot of people, this can be a nuisance and they'd rather remove the ability of users to view these directory listings. To do this, simply insert the following line in your .htaccess file:
Options -Indexes
This will remove the directory listing option for all directories in and below the one in which the .htaccess file is placed. If someone requests a directory that does not contain any index files (which would be displayed by default), then a 403 error code will be sent to the browser and either a custom error document or a standard one for your server will be displayed.
If you want to enable directory listings for some directories on your server, just create a .htaccess file in those directories and place in it the line:
Options +Indexes
This works in exactly the same way as disabling indexes, except it will enable them instead. If directory listings are already enabled, either through a .htaccess file higher up in the directory structure or in the httpd.conf file, then this setting will have no effect.
Красота, слушай, спасибо большое тебе, а то этот WebFM очень тормознутая вещь, да и прав там дохрена - можно и удалять и создавать и добавлять, а мне как раз нужно что бы то что я выложил оставалось неизменным
Такая же ерунда. Прикрепленный файл вместо того, чтобы загружаться, открывается. Загрузил на сайт rar, а он не скачивается, а "читается"! Как сделать простую ссылку на закачку, подскажите?
Сервер для начала нормально настройте, чтобы он отдавал нормальные заголовки
В каком смысле?
В переносном конечно же. А лучше пакуйте в zip, с ним обычно проблем нет
Про зип это мысль! Попробую. А если можно поподробней, как сервер настраивать? Кстати, там же залиты doc-файлы и картинки, так эксплорер их открывает прямо в себе (хотя бы правильно), а опера предлагает загрузить (что и требуется). Как тут настроить, чтобы все працювало?
Да надо прописать расширения где-то. Я это решил.
И все расширения необходимые мне прописал.
Вот где и как я пока не помню. Вспомню или найду отпишусь в теме.
Может кто помнит как это решается?
Нашел. Ищите файл /includes/file.inc
И найдите участок кода похожий на приведенный ниже.
Добавьте в него ваше описание типа.
К примеру, архив rar:
if (!is_array($mapping)) {
$mapping = variable_get('mime_extension_mapping', array(
......
'rar' => 'application/rar',
......
));
}
Предварительно проверьте нет ли там уже вашего расширения.
Была та же проблема: "ссылка переходила на страницу вместо файла, точнее на страницу "Страница не найдена".
Менял .htaccess, file.inc, ссылки по разному прописывал - ничего не помагало.
Решилось очень просто. Переименовал скачиваемый файл из русского на английский и всё заработало. Был файл с названием Отзыв.doc стал otziv.doc Может у кого такая же проблема)