wordpress vlastní příspěvek typu opakované 404 chyb
<p>mám wordpress cpt, který jsem běžel pár týdnů. nebyly s tím žádné problémy.</p><p>za posledních pár dní se to děje. každých pár minut wordpress zapomene, že stránka existuje a vrátí chybu 404. to může být vyřešeno vyprázdněním pravidel permalink v administračním panelu, ale o několik minut později se to děje a musí být znovu opraveno.</p><p>ví někdo, co by to mohlo způsobit, nebo jak to opravit?</p><p>chyby: některé z těchto:</p><pre><code>[fri sep 24 04:11:17 2010] [error] [client 150.254.160.253] invalid method in request \\n\\n </code></pre><p>více z nich (tv2 je slimák pro cpt):</p><pre><code>[fri sep 24 03:25:15 2010] [error] [client 67.142.166.25] file does not exist: /var/www/vhosts/default/htdocs/tv2 </code></pre><p>a tuna těchto:</p><pre><code>[fri sep 24 03:58:36 2010] [error] [client ::1] directory index forbidden by options directive: /var/www/html/ </code></pre>
<p>nevím, jaké konkrétní rozvržení cesty na vašem webovém serveru, ale položky z protokolu chyb se nedívám na mě, že je to konkrétně wordpress související:</p><blockquote> <p>neplatná metoda v požadavku n. n</p> </blockquote><p>tato chyba je způsobena neplatným požadavkem http. každý požadavek http má metodu. určitě to chybělo v požadavku, který vedl k položce protokolu.</p><blockquote> <p>soubor neexistuje:/var/www/vhosts/default/htdocs/tv2</p> </blockquote><p>a <em> soubor neexistuje </em> zpráva není normálně vytvořena, když php skript vrátí 404 záhlaví odpovědí. takže nejvíce jistě, tato chyba nebyla hlášena wordpress, ale server sám. konfigurace mod\_rewrite pro váš blog wordpress byla pravděpodobně nedostupná.</p><blockquote> <p>adresářový index zakázán direktivou options:/var/www/html /</p> </blockquote><p>to mi připadá stejně. pokud je <code>/var/www/html/</code> webroot vašeho blogu, pak to ukazuje, že index.php nebyl nalezen nebo nebyl vyhledán jako index adresáře vaším webovým serverem.</p><hr><p>takže nakonec to vypadá jako webserver konfigurace problém pro mě. trvale přestavba permalinků by zde tehdy nepomohla. pokud si nejste jisti, můžete použít <a href="http://codex.wordpress.org/user:hakre/permafrost">permafrost (wordpress plugin)</a> . související otázka regaring 404 chyb a permalinks je: <a href="https://wordpress.stackexchange.com/questions/3954/single-type-php-not-working-delivering-404">single-type.php nefunguje, dodává 404.</a> </p>
<p>čištění wordpress instalace nebo jakéhokoli webu těchto souborů je obecně jednoduché. pokud existuje vzor, ​​proveďte vyhledávání příslušných souborů a pak nahraďte špatný kód.</p><p>v případě wordpress existuje několik různých zdrojů špatného kódu (pravděpodobně dalších):</p><ol> <li>byl nainstalován již infikovaný motiv</li> <li>heslo ftp vašeho webu bylo uhádnuto a napadeno hackery</li> <li>wordpress je nezabezpečený a umožňuje instalaci červa</li> </ol><p>jedna věc, kterou můžete udělat, je nainstalovat <a href="http://wordpress.org/extend/plugins/tac/">tac (theme authenticity checker)</a> , který vyhledá špatné věci.</p><p>viz <a href="http://codex.wordpress.org/hardening\_wordpress"><strong> vytvrzování wordpress </strong></a> , kde jsou kroky, které mají zajistit, aby wordpress bylo bezpečnější. ale v zásadě, když jsem viděl, že se to stane, co se děje, je všechno zpět (databáze a všechny soubory), pak odfoukněte instalaci a nainstalujte novou instalaci wordpress, nové náhradní pluginy a nové téma ( pokud bylo vaše téma vlastní, zbavte se špatného kódu nejprve!).</p><p>googling pro „wordpress infection“ by vám měl dostat další články s podobnou radou.</p> <p>máte pro to dvě řešení:</p><ol> <li>použití <a href="http://codex.wordpress.org/custom\_fields">vlastní pole</a> toto je velmi komplexní průvodce: <a href="http://wparena.com/how-to/the-power-of-wordpress-custom-fields/">síla vlastních polí wordpress</a> . existuje několik velmi užitečných pluginů <a href="http://wordpress.org/extend/plugins/custom-field-template/">šablona vlastního pole</a> a <a href="http://wparena.com/how-to/the-power-of-wordpress-custom-fields/">kouzelná pole</a> , která použij je.</li> <li>použít <a href="http://codex.wordpress.org/wordpress\_widgets">widgety</a> . rozhraní api <a href="http://codex.wordpress.org/widgets\_api">widgets</a> umožňuje snadno vytvářet vlastní widgety.</li> </ol> no tak zaprve je divny ze se nejde prihlasit na FTP. pokud jste nemenil heslo tak kdo by ho menil ?? Kontaktujte podporu.Dal pokud bude fungovat ftp a stale to nepujde by bylo nejjednodussi vratit obsah hostingu ze zalohy (+db).. Wedos jiste denne zalohuje... a dalsi spravu webu bych doporucil sverit nekomu kdo se v tom lip vyzna... (bez urazky).A taky bych si nikdy nedal web na kterym "stoji byznys" k wedosu - ja s nima zkusenosti nemam, ale jejich povest je predchazi.. <p><em><strong>update</strong></em>: když jsem poprvé zaslal svou odpověď, zmeškal jsem podstatu otázky; moje odpověď byla o zabezpečení <code>.htaccess</code> obecně a nyní je uvedena pod dvojitou linií (podívejte se dolů, pokud vás to zajímá.) bohužel nemám specifické zkušenosti s zabezpečením <code>/wp-admin/</code> pomocí <code>.htaccess</code>, takže jednoduše uvedu dva zdroje, které budu sledovat kdy a jestli to potřebuji:</p><ul> <li> <a href="http://blogsecurity.net/wordpress/article-210607">vytvrzování wordpressu pomocí .htaccess</a> </li> <li> <a href="http://www.askapache.com/wordpress/htaccess-password-protect.html#comment">askapache ochrana heslem, pro wordpress</a> </li> </ul><p>první z nich doporučuje následující (a zde je <a href="http://wordpress.org/support/topic/codes-for-htaccess-in-wp-admin">nějaká diskuse o tom</a> .)</p><pre><code>&lt;files ~ "\.(php)$"&gt; authuserfile /etc/httpd/htpasswd authtype basic authname "restricted" order deny,allow deny from all require valid-user satisfy any &lt;/files&gt; </code></pre><p>ten má spoustu informací, zejména v komentářích, ale pokud vám poskytneme seznam ke čtení, není to odpověď, kterou jste hledali.</p><p>je mi líto, že jsem nemohl být na tomto místě užitečnější.</p><p></p><p>obvykle wordpress má pouze následující, které zpracovávaly zpracování permalinků a nesouvisí s bezpečností:</p><pre><code># begin wordpress &lt;ifmodule mod\_rewrite.c&gt; rewriteengine on rewritebase / rewriterule ^index\.php$ - [l] rewritecond %{request\_filename} !-f rewritecond %{request\_filename} !-d rewriterule . /index.php [l] &lt;/ifmodule&gt; # end wordpress </code></pre><p>nedávno jsem našel <a href="http://wordpress.org/extend/plugins/wp-htaccess-control/">wp htacess control</a> plugin, který spravuje spoustu <code>.htaccess</code> pro vás a já to mám moc rád. po úpravě nastavení přidala následující možnosti:</p><pre><code># wphtc: disable serversignature on generated error pages serversignature off # wphtc: disable directory browsing options all -indexes # wphtc: protect wp-config.php &lt;files wp-config.php&gt; order allow,deny deny from all &lt;/files&gt; # wphtc: protect .htaccess file &lt;files ~ "^.*\.([hh][tt][aa])"&gt; order allow,deny deny from all &lt;/files&gt; </code></pre><p>přidala také tyto možnosti, které se týkají výkonu místo zabezpečení:</p><pre><code># wphtc: setting mod\_gzip &lt;ifmodule mod\_gzip.c&gt; mod\_gzip\_on yes mod\_gzip\_dechunk yes mod\_gzip\_item\_include file \.(html?|txt|css|js|php|pl)$ mod\_gzip\_item\_include handler ^cgi-script$ mod\_gzip\_item\_include mime ^text/.* mod\_gzip\_item\_include mime ^application/x-javascript.* mod\_gzip\_item\_exclude mime ^image/.* mod\_gzip\_item\_exclude rspheader ^content-encoding:.*gzip.* &lt;/ifmodule&gt; # wphtc: setting mod\_deflate &lt;ifmodule mod\_deflate.c&gt; addoutputfilterbytype deflate text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript browsermatch ^mozilla/4 gzip-only-text/html browsermatch ^mozilla/4.0[678] no-gzip browsermatch bmsie !no-gzip !gzip-only-text/html header append vary user-agent env=!dont-vary &lt;/ifmodule&gt; </code></pre><p>kromě toho jsou některé pluginy, které jsem se nesnažil, ale které jsou zaměřeny na zabezpečení a které pracují s <code>.htaccess</code> - můžete je zkusit každý, abyste viděli, co dělají v souboru <code>.htaccess</code>:</p><ul> <li> <a href="http://wordpress.org/extend/plugins/wp-super-secure-and-fast-htaccess/">wp super bezpečný a rychlý htaccess</a> ( <a href="http://www.andreapernici.com/wordpress/wp-super-secure-and-fast-htaccess/">také</a> )</li> <li> <a href="http://wordpress.org/extend/plugins/bulletproof-security/">bulletproof zabezpečení</a> </li> <li> <a href="http://wordpress.org/extend/plugins/silence-is-golden-guard/">ticho je zlatá stráž</a> </li> <li> <a href="http://wordpress.org/extend/plugins/wp-blockyou/">wp-blockyou</a> </li> <li> <a href="http://wordpress.org/extend/plugins/stealth-login/screenshots/">stealth přihlášení</a> </li> <li> <a href="http://wordpress.org/extend/plugins/http-authentication/">ověření http</a> </li> <li> <a href="http://wordpress.org/extend/plugins/askapache-password-protect/">askapache password protect</a> </li> </ul><p>kromě toho, pokud chcete znát (imo) # 1 expert zdroj na <a href="http://www.askapache.com/search/wordpress+security/">zabezpečení apache související s wordpress</a> můžete najít na <a href="http://www.askapache.com/">askapache.com</a> ; vole je hardcore! jeho blog nevyřeší váš problém "<em>příliš mnoho informací</em>", ale alespoň ho můžete zobrazit jako autoritativní zdroj!</p><p>zde jsou některé příklady (i když ne všechny jsou přímo související s wordpressem)</p><ul> <li> <a href="http://www.askapache.com/wordpress/advanced-wp-config-php-tweaks.html">pokročilé aplikace wordpress wp-config.php tweak</a> </li> <li> <a href="http://www.askapache.com/security/wordpress-plugin-for-apache-htaccess-security.html#menu0-el1">příklad .htaccess pro wordpress</a> </li> <li> <a href="http://www.askapache.com/wordpress/wordpress-404.html">pokročilá aplikace wordpress 404</a> </li> <li> <a href="http://www.askapache.com/htaccess/mod\_security-htaccess-tricks.html">mod\_security .htaccess triky</a> </li> <li> <a href="http://www.askapache.com/htaccess/htaccess-plugin-blocks-spam-hackers-and-password-protects-blog.html">plugin bloků .htaccess blok spamu, hackerů a hesel</a> </li> </ul><p>každopádně doufám, že to pomůže.</p> <p>ahoj <strong> @ jonathan sampson </strong>:</p><p>existují <strong> několik zásuvných modulů, které usnadňují vytváření uživatelských typů příspěvků </strong> a některé umožňují definovat také vlastní pole, a to v konkrétním pořadí:</p><ul> <li> <a href="http://www.wpeasyposttypes.com/"><strong> typy jednoduchých příspěvků wp </strong></a> </li> <li> <a href="http://wordpress.org/extend/plugins/gd-taxonomies-tools/"><strong> vlastní příspěvky a nástroje taxonomie gd </strong></a> </li> <li> <a href="http://www.strangework.com/wordpress-plugins/custom-post-type-ui/"><strong> ui uživatelského typu příspěvku </strong></a> </li> <li> <a href="http://wordpress.org/extend/plugins/simple-fields/"><strong> jednoduchá pole </strong></a> </li> </ul><p>jak jsem zmínil výše, pracoval jsem na tom, který neposkytuje uživatelské rozhraní, jako jsou tyto, namísto toho rozšiřitelné rozhraní api pro složité typy polí (a také jednoduché). pro distribuci. možná za pár týdnů.</p><p>tyto pluginy uvedené výše by měly splňovat vaše základní potřeby a já se pokusím, aby se moje kompatibilní s daty uloženými všemi těmito v budoucnu v případě, že se rozhodnete použít moje v budoucnu.</p><p>můžete také najít tento příspěvek trochu pomoci také:</p><ul> <li> <a href="https://wordpress.stackexchange.com/questions/128/tips-for-using-wordpress-as-a-cms/187#187"><strong> tipy pro používání wordpressu jako cms? </strong></a> </li> </ul> <p><strong> <a href="http://codex.wordpress.org/faq\_troubleshooting#how\_to\_clear\_the\_.22briefly\_unavailable\_for\_scheduled\_maintenance.22\_message\_after\_doing\_automatic\_upgrade.3f">jak odstranit zprávu "krátce nedostupné pro naplánovanou údržbu" po provedení automatické aktualizace?</a> </strong></p><blockquote> <p>jako součást automatické aktualizace wordpress umístí soubor s názvem <code>.maintenance</code> do složky blogu <strong> </strong> (složka, která obsahuje složku wp-admin). pokud tento soubor existuje, zobrazí se vistors zpráva <strong> krátce nedostupná pro naplánovanou údržbu. vraťte se za minutu zpět </strong></p> <p>chcete-li zastavit zobrazování zprávy vistors, stačí odstranit soubor <code>.maintenance</code>. automatický upgrade by měl být proveden znovu, jen v případě, že selhal.</p> </blockquote> <p>odstraněním všech ostatních řešení je zbývající alespoň jedno: <a href="http://codex.wordpress.org/plugin\_api/action\_reference/template\_redirect"><code>template\_redirect</code></a> :</p><pre><code>function wpse121308\_redirect\_homepage() { // check for blog posts index // not site front page, // which would be is\_front\_page() if ( is\_home() ) { wp\_redirect( get\_category\_link( $id ) ); exit(); } } add\_action( 'template\_redirect', 'wpse121308\_redirect\_homepage' ); </code></pre><p>samozřejmě musíte složit příslušnou kategorii <code>$id</code>.</p><p>výhodou přesměrování na <code>template\_redirect</code> je to, že se místo jednoho přesměrování <em> po načtení šablony </em> provede pouze jedno načítání šablony.</p><h2>upravit</h2><p>podle komentáře uživatele @ milo můžete také zkusit zaháknutí do procesu ještě dříve, v souboru <code>pre\_get\_posts</code>, čímž můžete potenciálně uložit celý požadavek dotazu:</p><pre><code>add\_action( 'pre\_get\_posts', 'wpse121308\_redirect\_homepage' ); </code></pre> <p>největší wordpress giveaways jsou mezi <code>&lt;head&gt; &lt;/head&gt;</code> tagy.</p><p><strong> příklad výstupu obsahu wordpressu podle tématu twentyten a jak odstranit: </strong></p><pre><code>&lt;link rel="profile" href="http://gmpg.org/xfn/11" /&gt; </code></pre><p>odebrat přímo z header.php</p><pre><code> &lt;link rel="stylesheet" type="text/css" media="all" href="http://example.com/wp-content/themes/twentyten/style.css" /&gt; </code></pre><p>skrýt wordpress voláním šablony stylů z jiného umístění a změňte adresář wp-content. wordpress vyžaduje, aby vaše téma obsahovalo některé základní informace v horní části stylu style.css (style.css musí být v kořenovém adresáři motivů). budete muset vytvořit alternativní css a zavolat z hlavy. wordpress nevyžaduje, abyste používali motivy style.css, pouze to vyžaduje, aby byl v adresáři motivů.</p><p>odebrat přímo z header.php</p><pre><code>&lt;link rel="alternate" type="application/rss+xml" title="example blog &amp;raquo; feed" href="http://example.com/feed/" /&gt; &lt;link rel="alternate" type="application/rss+xml" title="example blog &amp;raquo; comments feed" href="http://example.com/comments/feed/" /&gt; &lt;link rel="edituri" type="application/rsd+xml" title="rsd" href="http://example.com/xmlrpc.php?rsd" /&gt; &lt;link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://example.com/wp-includes/wlwmanifest.xml" /&gt; &lt;link rel='index' title='example blog' href='http://example.com/' /&gt; &lt;meta name="generator" content="wordpress 3.1-alpha" /&gt; </code></pre><p>chcete-li tyto dodatečné odkazy odebrat, můžete přidat filtr do funkcí .php</p><pre><code>// remove junk from head remove\_action('wp\_head', 'rsd\_link'); remove\_action('wp\_head', 'wp\_generator'); remove\_action('wp\_head', 'feed\_links', 2); remove\_action('wp\_head', 'index\_rel\_link'); remove\_action('wp\_head', 'wlwmanifest\_link'); remove\_action('wp\_head', 'feed\_links\_extra', 3); remove\_action('wp\_head', 'start\_post\_rel\_link', 10, 0); remove\_action('wp\_head', 'parent\_post\_rel\_link', 10, 0); remove\_action('wp\_head', 'adjacent\_posts\_rel\_link', 10, 0); </code></pre><p>můžete změnit svůj adresář pluginů a adresář wp-content ve vašem souboru wp-config.php, ale můžete mít nějaké problémy, pokud váš motiv nebo pluginy nepoužívají správnou metodu pro volání souborů.</p><pre><code>define( 'wp\_content\_dir', $\_server['document\_root'] . '/new-wp-content' ); </code></pre><p>nastavte wp\_content\_url na úplný identifikátor uri tohoto adresáře (bez koncového lomítka), např.</p><pre><code>define( 'wp\_content\_url', 'http://example/new-wp-content'); </code></pre><p>volitelné nastavte wp\_plugin\_dir na úplnou místní cestu tohoto adresáře (bez koncového lomítka), např.</p><pre><code>define( 'wp\_plugin\_dir', $\_server['document\_root'] . '/new-wp-content/new-plugins' ); </code></pre><p>nastavte wp\_plugin\_url na úplný identifikátor uri tohoto adresáře (bez koncového lomítka), např.</p><pre><code>define( 'wp\_plugin\_url', 'http://example/new-wp-content/new-plugins'); </code></pre><p><strong>pluginy</strong></p><p>uvědomte si, že některé pluginy jako akismat, all in one seo, w3-total-cache, super cache a mnoho dalších přidávají komentáře k výstupu html. většina z nich lze snadno upravit, aby se odstranily komentáře, ale vaše změny budou přepsány kdykoliv aktualizací pluginů.</p><p><strong> wp-includes </strong></p><p>adresář wp-includes uchovává jquery a různé další soubory js, které témata nebo pluginy budou volat pomocí wp\_enqueue\_script (). chcete-li to změnit, musíte zrušit registraci výchozích skriptů aplikace wordpress a zaregistrovat nové umístění. přidat do funkcí.php:</p><pre><code>function my\_init() { if (!is\_admin()) { // comment out the next two lines to load the local copy of jquery wp\_deregister\_script('jquery'); wp\_register\_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js', false, '1.3.2'); wp\_enqueue\_script('jquery'); } } add\_action('init', 'my\_init'); </code></pre><p>to bude nutné provést s každým skriptem používaným vaším motivem nebo zásuvnými moduly.</p> zrejme chyba v Chrome, občas sa to stane aj mne..ale pomôže reštart prehliadača Ověř si aktuálnost tady (funguje na všech prohlížečích):<https://www.mozilla.org/cs/plugincheck/>Co máš za prohlížeč? Našlo to něco neaktualizovaného?