Reescreva problemas com o site personalizado e o wordpress

1

Estou gerenciando um site tasteporto.com que é simples php / mysql com uma parte do blog no wordpress.

No site principal, tenho as seguintes regras de reescrita do apache

RewriteEngine On
RewriteBase /

# no-www to www
RewriteCond %{HTTP_HOST} !^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301]

# http to https
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301]

# if not blog, make URLs pretty
RewriteCond %{REQUEST_URI} !^.*\/blog\/.*$ [NC]
RewriteCond %{REQUEST_URI} ^.*\/index [NC]
RewriteRule ^(.*)index\.php$ /$1 [R=301,L]

# if not blog, make URLs pretty by removing file extension
RewriteCond %{REQUEST_URI} !^.*\/blog\/.*$ [NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^\.]+)$ $1.php [NC,L]

No diretório wordpress, tenho as regras padrão mais uma para garantir que elas estejam sendo aplicadas ao caminho do blog:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^.*\/blog\/.*$ [NC]
RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_URI} ^.*\/blog\/.*$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

Todos os links normais no site funcionam bem, assim como a página inicial do blog.

O problema é que os permalinks do Wordpress gostam      link faça isso      link

Eu sei que isso é algo estupidamente simples, mas estou olhando para o mesmo problema por muito tempo e posso usar alguma ajuda. Alguém pode oferecer alguma sabedoria, por favor?

Obrigado por reescrever o inferno

    
por migueldavid 21.06.2016 / 12:57

2 respostas

0

Pode ser um problema derivado das seguintes regras:

# http to https
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301]

Por favor, tente alterá-lo para:

RewriteCond %{HTTPS} off [OR] 
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{SERVER_NAME}/%{REQUEST_URI} [R=301,L]
    
por 22.06.2016 / 13:48
0

Obrigado pelas suas respostas, eu realmente agradeço a elas.

Depois de algumas tentativas e erros, descobri. O problema era a linha de base para as regras de reescrita na parte do blog das coisas.

Para começar, algo que ajudou foi o aumento do registro para os arquivos de log de acesso e erro. Então, em /etc/apache2/mods-available/rewrite.load, adicionei a segunda linha abaixo:

LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so
LogLevel alert rewrite:trace4

Então aqui estão as reescritas no arquivo de configuração do site em sites disponíveis:

RewriteEngine On
# Turn on HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
# No-www to www
RewriteCond %{HTTP_HOST} !^www\.(.+)$ [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]

E aqui está o .htaccess no site principal:

RewriteEngine On
# if not blog do make URLs pretty
# by removing .php extensions
RewriteCond %{REQUEST_URI} !^.*\/blog\/.*$ [NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^\.]+)$ $1.php [NC,L]

E finalmente o .htaccess no diretório do blog:

RewriteEngine On
RewriteBase /blog
RewriteCond %{REQUEST_URI} ^/blog
RewriteRule ^/blog/index\.php$ - [L]

RewriteCond %{REQUEST_URI} ^/blog
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]

O principal problema foi este último bit com o RewriteBase sendo alterado para / blog.

Espero que isso ajude os outros.

    
por 23.06.2016 / 13:16