• Приветствую!

    Есть страница mysite.ru/doc. На этой странице должны быть ссылки такого вида: mysite.ru/doc/123.pdf. Cоздаём папку в корне сайта с именем doc и загружаем туда файл 123.pdf. При переходе по ссылке mysite.ru/doc получаем либо список файлов в папке, либо forbidden: You don’t have permission to access /doc/ on this server.

    Как сделать, чтобы можно было использовать страницу именно с таким ярлыком и использовать папку с таким названием?

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • А какие у вас права на файл и папку? кто владелец папки?

    Модератор Юрій

    (@yube)

    Согласно правилам, указанным в .htaccess (или аналогичных конфигах для не-Апача), /index.php, запускающий wordpress, выполняется тогда, когда в файловой системе отсутствует запрошенная директория или файл. То есть при наличии директории /doc/ до вордпресса ход не дойдет по определению.

    Обойти можно, если назвать директорию иначе, а запрошенные из нее реально существующие файлы отдавать через вордпресс. Это лишняя нагрузка, но для небольших файликов вполне терпимо.

    Попадалось решение: поместить в папку файл index.php с содержимым

    <?php include '../index.php';

    но в этом случае происходит бесконечное перенаправление и страница по прежнему недоступна.

    Модератор Юрій

    (@yube)

    А попробуйте-ка в /doc/ положить .htaccess с таким вот содержимым

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^$ ../index.php [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . ../index.php [L]
    </IfModule>
    

    Не помогает (

    Без .htaccess и/или index.php открывается в браузере просмотр содержимого папки, в противном случае — ERR_TOO_MANY_REDIRECTS

    Есть рабочий способ, но должна быть структура постоянных ссылок вида: http://site.ru/sample-post/

    и в файл index.php в папке поместить код:

    <?php
    
    /**
    
     * Front to the WordPress application. This file doesn't do anything, but loads
    
     * wp-blog-header.php which does and tells WordPress to load the theme.
    
     *
    
     * @package WordPress
    
     */
    
    /**
    
     * Tells WordPress to load the WordPress theme and output it.
    
     *
    
     * @var bool
    
     */
    
    define( 'WP_USE_THEMES', true );
    
    /** Loads the WordPress Environment and Template */
    
    require __DIR__ . '/../wp-blog-header.php';
Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Тема «Ярлык страницы совпадает с именем папки» закрыта для новых ответов.