como impedir que o wordpress altere as permissões padrão .htaccess para 444
<p>eu instalei meu site usando um instalador - fantastico para uma instalação rápida.</p><p>apenas alguns dias atrás, comecei a receber um erro estranho no plugin w3tc e ele me pedia para atualizar via ftp como você pode ver abaixo:</p><p><img src="https://i.stack.imgur.com/tbxwa.png" alt="w3tc error message"></p><p>eu descobri que as permissões de arquivo para o htaccess foram alteradas para 444</p><p>não importa quantas vezes eu tente alterá-lo manualmente, ele se torna 444 depois de um tempo (cerca de 30 segundos ou se eu fizer algo no painel do wp)</p><p></p><p><img src="https://i.stack.imgur.com/8g7yi.jpg" alt="permissions set to 444 :("></p><p>por um tempo, eu sou capaz de reescrever as regras e, em seguida, o arquivo é revertido para o que você vê abaixo:</p><p><img src="https://i.stack.imgur.com/atph2.jpg" alt="htaccess reverts to this"></p><p>eu tenho hospedagem compartilhada da hostgator.</p><p>existe uma maneira de combater esse problema?</p><p>edit: eu tentei adicionar detalhes do ftp para minha configuração wp também. não ajudou</p>
<p>seu site provavelmente foi invadido. meu site teve a infecção <a href="https://blog.sucuri.net/2015/03/pseudo-darkleech-server-root-infection.html">darkleech</a> , que injetou algum código malicioso em <code>wp-includes/nav-menu.php</code>, fazendo com que o .htaccess fosse redefinido para 444 em qualquer carregamento de página.</p><p>eu recomendo que você instale o plugin <a href="https://wordpress.org/plugins/sucuri-scanner/">sucuri</a> e deixe-o restaurar quaisquer arquivos que tenham sido corrompidos. supondo que seu site foi invadido, use a guia post-hack para redefinir plug-ins, senhas e chaves. além disso, verifique se outro usuário administrador não foi criado. use a guia hardening para proteger o máximo possível. você também pode instalar o <a href="https://wordpress.org/plugins/wordfence/">wordfence</a> para mais segurança.</p><p>se você fizer ajustes e o problema continuar voltando, provavelmente você terá uma violação no nível raiz em seu servidor e terá que trabalhar com seu provedor de hospedagem para tentar limpar a infecção.</p>
<p>talvez tente desativar o ftp em <code>global configuration -&gt; server</code>.</p><p>você pode ter um problema de propriedade de arquivo em vez de um problema de permissão de arquivo. mudar para o apropriado php o manipulador de arquivos às vezes pode ajudar.</p><p>há uma resposta mais completa em: <a href="https://joomla.stackexchange.com/questions/132/recommended-practices-regarding-joomla-file-directory-permissions-and-ownership/161#161">práticas recomendadas sobre permissões de arquivos/diretórios do joomla e propriedade em sistemas linux?</a> </p> <p>em resposta direta à pergunta, o wordpress não inclui uma função para isso, em parte porque não se aplica especificamente à funcionalidade do wordpress. ou seja é um problema php (potencial), não wordpress.</p><p>além disso, eu não diria que é responsabilidade do wordpress fornecer soluções alternativas para plugins, etc, que não fornecem uma função para retornar dados (que é contra o estilo geral do wordpress).</p> <p>parece sempre haver um pouco de confusão sobre esse assunto. talvez o wordpress possa fazer um trabalho melhor orientando seus usuários nesse processo. embora, eu suponha que o multi-site não se destinava a ser usado para tlds.</p><p>então, primeiro de tudo, eu iria <a href="https://codex.wordpress.org/installing\_wordpress">instalar o wordpress</a> , <a href="https://codex.wordpress.org/create\_a\_network">setup multisite</a> , e configurá-lo como uma configuração de rede de subdomínio.</p><p>aqui está uma configuração de exemplo para o seu arquivo <code>wp-config.php</code> no diretório base da sua instalação do wordpress:</p><pre><code>/* multisite */ define( 'wp\_allow\_multisite', true ); define( 'multisite', true ); define( 'subdomain\_install', true ); define( 'domain\_current\_site', 'www.primary-domain.com' ); define( 'path\_current\_site', '/' ); define( 'site\_id\_current\_site', 1 ); define( 'blog\_id\_current\_site', 1 ); </code></pre><p>então, aqui está a configuração básica para o seu arquivo <code>.htaccess</code> como uma configuração de subdomínio, no diretório base da sua instalação do wordpress:</p><pre><code># bof wordpress rewriteengine on rewritebase / rewriterule ^index\.php$ - [l] # add a trailing slash to /wp-admin rewriterule ^wp-admin$ wp-admin/ [r=301,l] rewritecond %{request\_filename} -f [or] rewritecond %{request\_filename} -d rewriterule ^ - [l] rewriterule ^(wp-(content|admin|includes).*) $1 [l] rewriterule ^(.*\.php)$ wp/$1 [l] rewriterule . index.php [l] # eof wordpress </code></pre><p>agora, para que os tlds funcionem corretamente, eu tive que fazer algumas configurações adicionais no arquivo <code>wp-config.php</code> assim:</p><pre><code>define( 'cookie\_domain', '' ); define( 'admin\_cookie\_path', '/' ); define( 'cookiepath', '/' ); define( 'sitecookiepath', '/' ); </code></pre><p>é isso com as configurações específicas do wordpress.</p><p>pessoalmente, gosto de ter um host virtual apache para o domínio primário na rede e, em seguida, configurar esse host virtual com domínios de alias. cada domínio de alias é um dos sites adicionais em sua rede.</p><p>no entanto, você acaba aprimorando sua configuração, precisa do dns de cada domínio para resolver o mesmo servidor da web e cada domínio deve ser apontado para o mesmo diretório em que o domínio principal é instalado com o wordpress. cada domínio em sua rede precisa apontar para o mesmo servidor da web com registros dns e compartilhar o mesmo caminho de diretório para os arquivos usados ​​pelo wordpress.</p><p>depois de configurar e configurar tudo corretamente, conforme discutido acima. faça o login em sua área de administração do wordpress e navegue até a área de administração de rede para adicionar um novo site à sua rede.</p><p>quando você vai adicionar um site, ele vai obrigá-lo a adicionar o site como se fosse um sub-domínio em seu domínio principal. apenas role com isso. digite algo temporário.</p><p>uma vez que o site foi adicionado, então vá encontrá-lo na lista de sites em sua rede. clique em editar nesse site específico. agora, você pode totalmente 100% alterar o nome de domínio desse site. é quando você colocaria o nome de domínio real para esse site de tld.</p><p>eu sei que é um pouco complicado fazer isso, mas funciona e você não precisa usar nenhum plug-in.</p> [imagem] er.nalldo:

entrando em contato com o suporte, nós temos opção de fazer alteração

infelizmente a senha de quatro dígitos não pode ser modificada, apenas a senha de acesso ao app. <p>acho que também precisamos de mais alguns recursos:</p><ul> <li>minimizar js, css e o html que está sendo enviado pela rede.</li> <li>armazenando em cache o código operacional do php que será gerado (exceto pelo memcached).</li> <li>carregue o js, css e imagens que são usados ​​no tema e/ou plugin para um cdn e sincronize automaticamente.</li> <li>opção para usar uma das redes públicas de cdn como o google para recursos comuns como o jquery.</li> <li>ofereça um cdn comum para todos os scripts de administração e imagens do wordpress (que devem ser exatamente os mesmos em várias instalações do wordpress) para que eu possa ter esse trabalho um pouco mais rápido.</li> <li>dns gerenciado - para garantir que eles possam restaurar um backup de seu site em outro local automaticamente, caso tenham problemas com o hardware atual. com isso, eles podem alternar automaticamente seus domínios para as novas configurações.</li> </ul> o meu é o huawei e5577c.ir à pagina de configuração (192.168.1.1 - confirmar no autocolante do hotspot se é este o endereço) -> colocar o login e a password (em principio esta informação vem na parte inferior do hotspot-) -> ir a settings (definições) -> wlan->wlan basic settings(configurações básicas) -> campo wpa pre-shared key (passe partilhada) -> escrever nova password. -> guardar alteraçõesisto altera a password para aceder à rede wifi. não é para alterar a password de acesso ao router. no firefox:

vá no menu --> help --> restart with add-ons disabled e teste se ainda redireciona p/ páginas estranhas. <h2>configurando a ordem de caixas meta em páginas de edição de postagem</h2><p>você precisará remover as caixas meta e adicioná-las novamente na ordem desejada.</p><p>para desabilitar caixas meta: (personalize para suas necessidades, olhe o id do metabox no código html para saber qual nome você deve usar como primeiro parâmetro das funções)</p><pre><code>function my\_remove\_meta\_boxes() { remove\_meta\_box('postcustom', 'post', 'core'); remove\_meta\_box('commentsdiv', 'post', 'core'); ... } add\_action( 'admin\_menu', 'my\_remove\_meta\_boxes' ); </code></pre><p>depois de removê-los, você pode usar a função add\_meta\_box para adicioná-los em novas posições: <a href="http://codex.wordpress.org/function\_reference/add\_meta\_box">http://codex.wordpress.org/function\_reference/add\_meta\_box</a> . a ordem das caixas meta depende da ordem em que você chama a função add\_meta\_box. por exemplo: com o seguinte trecho de código, a caixa meta de comentários será antes da caixa meta de campos personalizados.</p><pre><code>function my\_add\_meta\_boxes( $post\_type, $post ) { if ( ('publish' == $post-&gt;post\_status || 'private' == $post-&gt;post\_status) &amp;&amp; post\_type\_supports($post\_type, 'comments') ) add\_meta\_box('commentsdiv', \_\_('comments'), 'post\_comment\_meta\_box', $post\_type, 'normal', 'core'); if ( post\_type\_supports($post\_type, 'custom-fields') ) add\_meta\_box('postcustom', \_\_('custom fields'), 'post\_custom\_meta\_box', $post\_type, 'normal', 'core'); ... } add\_action( 'add\_meta\_boxes', 'my\_add\_meta\_boxes' ); </code></pre><p>você pode querer olhar para o arquivo wp-admin/edit-form-advanced.php</p><h2>definir qual título de coluna aparece na página da lista de postagens</h2><p>você precisa usar o filtro manage \_ {$ post\_type} \_posts\_columns. por exemplo: o fragmento a seguir removerá a coluna de comentários.</p><pre><code>function my\_remove\_columns( $posts\_columns ) { unset( $posts\_columns['comments'] ); return $posts\_columns; } add\_filter( 'manage\_post\_posts\_columns', 'my\_remove\_columns' ); </code></pre><h2>definir os resultados padrão a serem mostrados na página da lista de postagens</h2><p>use os filtros 'edit \_ {$ post\_type} \_per\_page' e 'edit\_posts\_per\_page'.</p><pre><code>function my\_edit\_post\_per\_page( $per\_page, $post\_type ) { $edit\_per\_page = 'edit\_' . $post\_type . '\_per\_page'; $per\_page = (int) get\_user\_option( $edit\_per\_page ); if ( empty( $per\_page ) || $per\_page &lt; 1 ) $per\_page = 1; return $per\_page; } add\_filter( 'edit\_posts\_per\_page', 'my\_edit\_post\_per\_page' ); </code></pre><p>para segmentar um tipo de postagem específico:</p><ul> <li> <p>use <code>add\_filter( 'edit\_{post type}\_per\_page', 'my\_edit\_post\_per\_page' );</code>, por exemplo <code>add\_filter( 'edit\_post\_per\_page', 'my\_edit\_post\_per\_page' );</code> para posts, <code>add\_filter( 'edit\_page\_per\_page', 'my\_edit\_post\_per\_page' );</code> para páginas.</p> </li> <li> <p>ou use uma condição dentro de sua função. por exemplo.:</p> <p>function my\_edit\_post\_per\_page ($ per\_page, $ post\_type) {</p> <pre><code>if( $post\_type == 'post' ) { $edit\_per\_page = 'edit\_' . $post\_type . '\_per\_page'; $per\_page = (int) get\_user\_option( $edit\_per\_page ); if ( empty( $per\_page ) || $per\_page &lt; 1 ) $per\_page = 1; } return $per\_page; </code></pre></li> </ul> <p>é possível com o powershell, mas afeta apenas as caixas de correio atuais. as caixas de correio futuras não terão esse acesso. o que você pode fazer é apenas fazer um agendamento do windows e executar o comando powershell para ele.</p><p>outra opção é usar a ferramenta <a href="http://www.amset.info/downloads/setperm.zip">setperm</a> que editou as permissões na caixa de correio padrão. este tem o avanço de ser para todas as futuras caixas de correio.</p> <p>o wordpress não converte urls automaticamente em hiperlinks.</p>