Невозможно получить доступ к подкаталогам, не относящимся к Wordpress, поскольку wordpress переопределяет их с ошибкой 404
-
-
Что произойдет,если вы переименуетеindex.php вindex.bak в корневой папке WordPress?Каталог все еще недоступен?What happens if you rename the index.php to index.bak in the WordPress root folder? Is the directory still not accessible?
- 0
- 2011-06-16
- Horttcore
-
Вы пытались переопределить базовый URL-адрес в своей подпапке .htaccess (с этой подпапкой для значения)?Have you tried to redefine the base url in your sub-folder .htaccess (with this sub-folder for value) ?
- 0
- 2011-08-05
- Cédric G
-
8 ответ
- голосов
-
- 2011-06-17
Я предполагаю,что вы помещаете WordPress в корень вашего сайта,а внешние каталоги также находятся в корне вашего сайта. Причина этого в том,что файлы .htaccess следуют иерархии. Какие бы директивы ни находились в файле верхнего уровня .htaccess,они переходят вниз и применяются ко всем каталогам,расположенным ниже.
В этом случае вы можете сделать одно из следующих действий:
-
Переместите ваш WordPress в отдельный каталог. См .: http://codex.wordpress.org/Moving_WordPress Если вы переместите WordPress в его собственный каталог,чтобы он находился на том же уровне в иерархии каталогов вашего сервера,что и другие каталоги,правила перезаписи WordPress не могут повлиять на другие каталоги.
-
RewriteEngine Off - нормально работает. Если это не работает,убедитесь,что вы не используете настройку DNS с подстановочными знаками. Если у вас есть запись имени хоста с подстановочным знаком *,указывающая на ваш веб-сервер в настройках DNS,это может вызвать хаос в .htaccess и поддоменах.
-
В файле .htaccess в корне вашего сайта добавьте следующие директивы WordPress .htaccess:
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} ^/subdirectoryname1/(.*)$ [OR] RewriteCond %{REQUEST_URI} ^/subdirectoryname2/(.*)$ [OR] RewriteRule ^.*$ - [L] </IfModule>
Один из них должен вам подойти.
I'm assuming that you put WordPress in your site root and the external directories are also in your site root. The reason this is happening is that .htaccess files follow a hierarchy. Whatever directives are in the top-level .htaccess file flow down and apply to all directories below it.
If this is the case, you can do one of several things:
Move your WordPress into its own directory. See: http://codex.wordpress.org/Moving_WordPress If you move WordPress into its own directory so that it is on the same level in your server directory hierarchy as the other directories the WordPress rewrite rules cannot affect the other directories.
RewriteEngine Off - this would normally work. If it isn't working check that you are not using a wildcard DNS setting. If you have a wildcard * hostname record pointing at your web server in your DNS settings it can cause havoc with .htaccess and subdomains.
In the .htaccess file in your site root, add the following ABOVE the WordPress .htaccess directives:
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} ^/subdirectoryname1/(.*)$ [OR] RewriteCond %{REQUEST_URI} ^/subdirectoryname2/(.*)$ [OR] RewriteRule ^.*$ - [L] </IfModule>
One of these should work for you.
-
-
Благодаря!Я много чего пробовал,но это единственное решение,которое сработало в моем случае: подкаталог,защищенный паролемThanks! I've tried so many things, but this is the only solution that worked for my case: password-protected subdirectory
- 3
- 2013-03-06
- Rado
-
У меня тоже сработало,какие-либо объяснения того,что он делает и почему работает?Worked for me too, any explanation as to what it does and why it works?
- 2
- 2013-08-10
- Asaf
-
Это работает для меня .. не использую wordpress,но OpenCart и имею ту же проблему.Объяснение было бы действительно полезно.This works for me.. not using wordpress but OpenCart and having the same problem. An explanation would be really helpful.
- 0
- 2014-08-28
- billynoah
-
-
- 2012-05-25
Я вижу,что этой ветке несколько месяцев назад,но на всякий случай,если она у вас так и не заработала!
У меня была аналогичная проблема,но моя проблема заключалась в том,что установка 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]
Включите постоянные ссылки для обновления,и это решит все проблемы. Убедитесь,что ваши разрешения для корневых папок также установлены правильно,поскольку это вызывало у меня проблемы в прошлом.
I see this thread is a few months old, but just in case you never got it to work!
I had a similar issue, but my problem was that the wordpress install was located in the subdirectory which prevented URL access to folders within the root (outside the WP install directory), but only when permalinks were enabled. To solve this, I copied both index.php and .htaccess (copy not move) from the subdirectory where the WP install is located and placed them both in the root public_html (or whatever subdirectory that you're trying to access outside the WP install directory). The .htaccess file has the rewrite conditions for permalinks already:
RewriteEngine On RewriteBase /subdirectoryinstallfolder/ RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L]
Enable permalinks for refresh and it solved all issues. Make sure your permissions for the root folders are set correctly too as this has caused me problems in the past.
-
- 2012-09-13
когда я копирую свои файлы на тот же сервер,но с другой папкой подкаталога,поэтому,когда я пытался получить доступ к своим страницам,index.php работает нормально,но другие страницы нет,и выдает ошибку 404.Простите за плохой английский !!
Я просто смотрю в свой htaccess оригинал:
# НАЧАТЬ WordPress RewriteEngine On RewriteBase/ RewriteCond% {REQUEST_FILENAME}! -F RewriteCond% {REQUEST_FILENAME}! -D RewriteRule./index.php [L] # КОНЕЦ WordPress
и поместите новый с помощью
# НАЧАТЬ WordPress RewriteEngine On RewriteBase/subdirectoryfolder RewriteCond% {REQUEST_FILENAME}! -F RewriteCond% {REQUEST_FILENAME}! -D RewriteRule./subdirectoryfolder/index.php [L] # КОНЕЦ WordPress
when i copy my files into the same server but with different subdirectory folder so when i tried to access my pages, index.php is working fine but the other pages are not and giving me a 404 error. Sorry for my bad english!!
I just look into my htaccess the original:
# BEGIN WordPress RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress
and put the new one with
# BEGIN WordPress RewriteEngine On RewriteBase /subdirectoryfolder RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /subdirectoryfolder/index.php [L] # END WordPress
-
Привет,@lizette.Добро пожаловать на форумы WPSE.Вы можете узнать [как работает форматирование] (http://stackoverflow.com/editing-help) здесь.Hi @lizette. Welcome to WPSE forums. You may want to check out [how formatting works](http://stackoverflow.com/editing-help) here.
- 0
- 2012-09-21
- Pothi Kalimuthu
-
- 2011-06-17
Если вы все еще получаете сообщение 404 с отключенным htaccess,и вы проверили пути и знаете,что файлы там есть,то у вас остались только три варианта ...
Параметры ...
- Возможно,на сервере установлена операционная система с учетом регистра.Это означает,что если вы вводите путь,не используя точные символы и регистр,он просто не будет работать.
- Разрешения: у вас могут быть неправильные разрешения для файла,папки или родительской папки.Попробуйте изменить права доступа на 755 для файлов,папок и родительских папок.Если у вас есть доступ к нему через ssh (терминал),перейдите в корневой каталог и запустите этот «chmod -R 755mydir»,который рекурсивно установит разрешения для всех из них.
- Если у вас все еще есть проблема после всего этого,значит,у вас проблема с конфигурацией сервера (возможно,Apache).Вам нужно будет поговорить об этом со своим хостинг-провайдером.
Если ничего из этого не сработает,вам нужен новый хост.
If you are still getting 404's with the htaccess disabled and you have verified the paths and you know the files are there then your only options left are these three...
Options...
- Server is quite possibly running a case-sensitive operating system. Which means if you are typing in a path and not using the exact characters and casing it simply will not work.
- Permissions: You may have the wrong permissions on the file or folder or a parent folder. Try to change the permissions to 755 on the files, folders, and parent folders. If you have ssh (terminal) access to it then go to your root and run this "chmod -R 755 mydir" and that will recursively set the permissions for all of them.
- If you are still having a problem after all of that then you have a server config problem (Apache probably). You will need to talk to your hosting provider about it.
If none of that works then you need a new host.
-
- 2015-12-10
После того,как я чуть не сорвал волосы и отредактировал 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>
Замените subdirectoryname именем вашего каталога и поместите этот файл htaccess в папку,где находится ваш скрипт.
Пример: если сайт установлен здесь
public_html/
и находится новая папка
`public_html/example`
скопируйте htaccess выше и сохраните его в папкеexample,и это должно сработать.
After nearly plucking my hair editing the htaccess I finally found a solution that will work for WordPress.
I had this problem after installing a codeiginter script on the same root directory that WordPress is installed.
After trying all the tricks listed here I was still getting 404 errors on the pages associated with the new script.
I noted that the WordPress htaccess was overiding the script's htaccess. I also noted that other WordPress installations in the same directory did not have this 404 error.
I simply adopted the htaccess from the new WordPress installation in the same server directory and added it in the folder where my script is located. Here is how it looks like :
<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>
Replace subdirectoryname with the name of your directory and place this htaccess file inside the folder where your script is located.
Example : If the site is installed here
public_html/
and the new folder is located
`public_html/example`
copy the htaccess above and save it inside the folder 'example' and this should work.
-
- 2013-10-02
Я просматривал ответы здесь несколько раз,поскольку сталкивался с аналогичной проблемой.У меня есть файлы в подкаталоге,которые выдают ошибку 404,когда я пытаюсь получить к ним доступ.Все вещи .htaccess не смогли исправить это,как говорит Кирстен Дуглас,Wordpress уже выполняет свою работу.
Мое решение
Я нашел этот article после проверкиerror_log на сервере.Я получал сообщение о неправильном uid для скриптов.Я также заметил,что сообщение 404 было выдано не из-за файла,а из-за того,что сервер не смог обработать файл 500.html,т.е. у меня была ошибка 500.
Оказывается,я создал файлы как root,и мне нужно было передать право собственности владельцу веб-файлов.
Надеюсь,это поможет другим,у кого была такая же проблема!
I've looked at the responses here a number of times as I'd run into a similar problem. I have files in a subdirectory that would throw a 404 error when I tried to access them. All the .htaccess stuff failed to rectify it, as Kirsten Douglas says, Wordpress does the job already.
My solution
I found this article after checking the error_log on the server. I was getting a message about wrong uid for scripts. I also noticed that the 404 wasn't being thrown because of the file, but because the server couldn't serve up a 500.html file i.e. I had a 500 error.
Turns out I'd created files as root, and needed to change ownership to the webfiles owner.
I hope this helps others who've had the same issue!
-
- 2011-06-16
Вы должны иметь возможность просто добавить директиву
RewriteCond
,которая обеспечит игнорирование правил WordPress для запросов внутри вашей подпапки.RewriteCond %{REQUEST_URI} !^/mysubdirectory # rest of WordPress rewrite rules
Однако вы говорите,что даже с отсутствием WordPress
.htaccess
вы испытываете проблему?Каково содержимое вашего подкаталога.htaccess
?You should be able to just add a
RewriteCond
directive that will make sure the WordPress rules are ignored for requests inside your subfolder.RewriteCond %{REQUEST_URI} !^/mysubdirectory # rest of WordPress rewrite rules
However, you say that even with no WordPress
.htaccess
you're experiencing the problem? What's the contents of your subdirectory.htaccess
?
Я имею в виду этот вопрос,который был задан ранее и на который нет надлежащего ответа: Wordpress переопределяет фактические подкаталоги а также Не в "Wordpress"; страницы/код получают ошибку 404
У меня та же проблема,и я перепробовал почти все,что нашел в сети. Это определенно связано с включением постоянных ссылок в wordpress. Однако я поместил новый файл .htaccess в подкаталог с:
RewriteEngine выключен
,но проблема все еще существует. Даже если я полностью удалю файл wordpress .htaccess,проблема все еще существует.
Я также пробовал другие предлагаемые решения,например ErrorDocument 401 «Несанкционированный доступ» и Ошибка Документ 404 «Несанкционированный доступ» и Перенаправление 301/mysubdirectory http://www.mydomain.com/mysubdirectory/index.html в разных местах все безрезультатно.
Кто-нибудь может предложить другое решение? Единственный способ исправить это - отключить постоянные ссылки,но они должны быть включены.
Спасибо,
Николь