Не удается получить доступ к подкаталогам без wordpress, поскольку wordpress переопределяет их с ошибкой 404

Я ссылаюсь на этот вопрос, который был ранее задан и не ответил на него: Wordpress, переопределяющий фактические подкаталоги а также Непечатаемые страницы /код Wordpress, вызывающие ошибку 404

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

RewriteEngine off

и проблема все еще существует. Даже если я полностью удалю файл wordpress .htaccess, проблема все еще существует.

Я также пробовал некоторые другие предлагаемые решения, такие как ErrorDocument 401 «Несанкционированный доступ» а также ErrorDocument 404 «Несанкционированный доступ» а также Перенаправление 301 /mysubdirectory http://www.mydomain.com/mysubdirectory/index.html в разных местах все безрезультатно.

Кто-нибудь может предложить другое решение? Единственный способ, которым я могу это исправить, - отключить постоянные ссылки, но нам нужно, чтобы они были включены.

Спасибо,

Николь

29 голосов | спросил Nicole 16 J0000006Europe/Moscow 2011, 11:54:22

8 ответов


24

Я предполагаю, что вы помещаете WordPress в свой корень сайта, а внешние каталоги также находятся в корне вашего сайта. Причина этого заключается в том, что файлы .htaccess соответствуют иерархии. Независимо от того, какие директивы находятся в потоке верхнего уровня .htaccess и применяются ко всем каталогам под ним.

Если это так, вы можете сделать одну из следующих вещей:

  1. Переместите WordPress в свой собственный каталог. См .: http://codex.wordpress.org/Moving_WordPress Если вы переместите WordPress в свой собственный каталог, чтобы он был на том же уровне в иерархии каталогов сервера, что и другие каталоги, правила перезаписи WordPress не могут повлиять на другие каталоги.

  2. RewriteEngine Off - это обычно работает. Если он не работает, проверьте, что вы не используете настройку DNS подстановки. Если у вас есть подстановочная * запись имени хоста, указывающая на ваш веб-сервер в настройках DNS, это может привести к хаосу с .htaccess и субдоменами.

  3. В файле .htaccess в корне вашего сайта добавьте следующие ABOVE директивы .htaccess WordPress:

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_URI} ^/subdirectoryname1/(.*)$ [OR]
    RewriteCond %{REQUEST_URI} ^/subdirectoryname2/(.*)$ [OR]
    RewriteRule ^.*$ - [L]
    </IfModule>
    

Один из них должен работать на вас.

ответил Elpie 17 J0000006Europe/Moscow 2011, 18:33:00
16

Это работало для меня в прошлом для аналогичной ситуации:

Поместите это поверх .htaccess

ErrorDocument 401 default
ответил mike23 16 J0000006Europe/Moscow 2011, 13:39:43
3

, когда я копирую свои файлы на один и тот же сервер, но с другой папкой подкаталога, поэтому, когда я пытался получить доступ к моим страницам, index.php работает нормально, а на других страницах нет и дает мне ошибку 404. Извините за мой плохой английский!

Я просто заглядываю в свой htaccess оригинал:

# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteCond% {REQUEST_FILENAME}! -F
RewriteCond% {REQUEST_FILENAME}! -D
RewriteRule. /index.php [L]

# END WordPress

и поставьте новый с помощью

# BEGIN WordPress

RewriteEngine On
RewriteBase /подкаталог
RewriteCond% {REQUEST_FILENAME}! -F
RewriteCond% {REQUEST_FILENAME}! -D
RewriteRule. /subdirectoryfolder/index.php [L]

# END WordPress
ответил lizette 13 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 13 Sep 2012 15:14:06 +0400 2012, 15:14:06
3

Я вижу, что эта тема несколько месяцев, но на всякий случай вы никогда не получили ее на работу!

У меня была аналогичная проблема, но моя проблема заключалась в том, что установка wordpress находилась в подкаталоге, который предотвращал доступ к URL-адресам в корневом каталоге (вне установочной директории WP), но только в том случае, когда разрешены постоянные ссылки. Чтобы решить эту проблему, я скопировал как index.php, так и .htaccess (копировать не перемещать) из подкаталога, где установлена ​​установка WP, и поместил их как в корневой public_html (или в какой-либо другой подкаталог, к которому вы пытаетесь получить доступ за пределами WP-установки каталог). Файл .htaccess имеет условия перезаписи для постоянных ссылок:

RewriteEngine On
RewriteBase /subdirectoryinstallfolder/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

Включить постоянные ссылки для обновления и решить все проблемы. Убедитесь, что ваши права для корневых папок установлены правильно, так как это в прошлом вызывало проблемы.

ответил Kirsten Douglas 25 Maypm12 2012, 22:46:55
2

Если вы все еще получаете 404 с отключенным htaccess, и вы проверили пути, и вы знаете, что файлы есть, тогда ваши единственные варианты - эти три ...

Параметры ...

  1. Возможно, сервер работает под управлением операционной системы с учетом регистра. Это означает, что если вы вводите путь и не используете точные символы и обложку, это просто не сработает.
  2. Разрешения. У вас могут быть неправильные разрешения для файла или папки или родительской папки. Попробуйте изменить разрешения на 755 на файлы, папки и родительские папки. Если у вас есть доступ к ssh (terminal), перейдите к своему корню и запустите этот «chmod -R 755 mydir», и он будет рекурсивно устанавливать разрешения для всех из них.
  3. Если у вас все еще есть проблема после этого, у вас есть проблема с конфигурацией сервера (возможно, Apache). Вам нужно поговорить с вашим провайдером хостинга.

Если ничего из этого не работает, вам нужен новый хост. Я рекомендую hostmonster.com для дешевого хостинга, который имеет большую поддержку и предлагает доступ к SSH. Я использую их, стоит около 5 долларов США в месяц. Если вам нужно что-то более надежное и масштабируемое, но по-прежнему имеет хорошие цены, я рекомендую mediatemple.net. Они предлагают масштабируемый облачный хостинг от 20 долларов США в месяц. Хотя я бы пошел только со вторым вариантом, если вы ожидаете увидеть резкое увеличение трафика или у вас уже очень высокий трафик (я говорю 500-1 000 + в час).

ответил pthurmond 17 J0000006Europe/Moscow 2011, 18:44:49
2

После почти выщипывания моего волоса, редактирующего htaccess, я наконец нашел решение, которое будет работать для WordPress.

У меня возникла эта проблема после установки скрипта codeiginter в том же корневом каталоге, в котором установлен WordPress.

После попытки всех трюков, перечисленных здесь, я все еще получал 404 ошибки на страницах, связанных с новым скриптом.

Я заметил, что htaccess WordPress преодолел htaccess скрипта. Я также отметил, что другие установки WordPress в том же каталоге не имели этой ошибки 404.

Я просто принял htaccess из новой установки WordPress в том же каталоге сервера и добавил ее в папку, где находится мой скрипт. Вот как это выглядит:

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

Замените имя подкаталога на имя вашего каталога и поместите этот файл htaccess внутри папки, где находится ваш скрипт.

Пример: если сайт установлен здесь

public_html/

и новая папка находится

`public_html/example`

скопируйте htaccess выше и сохраните его в папке «example», и это должно сработать.

ответил NJENGAH 10 ThuEurope/Moscow2015-12-10T16:59:38+03:00Europe/Moscow12bEurope/MoscowThu, 10 Dec 2015 16:59:38 +0300 2015, 16:59:38
0

Вы должны просто добавить директиву RewriteCond, которая будет следить за тем, чтобы правила WordPress игнорировались для запросов внутри вашей подпапки.

RewriteCond %{REQUEST_URI} !^/mysubdirectory
# rest of WordPress rewrite rules

Однако вы говорите, что даже с no WordPress .htaccess у вас возникла проблема? Каково содержимое вашего подкаталога .htaccess?

ответил TheDeadMedic 16 J0000006Europe/Moscow 2011, 12:58:45
0

Я рассматривал ответы здесь несколько раз, так как я столкнулся с подобной проблемой. У меня есть файлы в подкаталоге, которые будут бросать ошибку 404, когда я попытаюсь получить к ним доступ. Весь материал .htaccess не смог его исправить, как говорит Кирстен Дуглас, Wordpress уже делает эту работу.

Мое решение

Я нашел этот статью после проверки error_log на сервере. Я получал сообщение о неправильном uid для скриптов. Я также заметил, что 404 не выбрасывался из-за файла, а потому, что сервер не мог обслуживать файл 500.html, то есть у меня была ошибка 500.

Оказывается, я создал файлы как root, и вам нужно было изменить владельца владельца веб-файла.

Я надеюсь, что это поможет другим, у кого была такая же проблема!

ответил Dan 2 +04002013-10-02T11:54:14+04:00312013bEurope/MoscowWed, 02 Oct 2013 11:54:14 +0400 2013, 11:54:14

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132