htaccess – Redirecionamentos com mais de 1 nível de profundidade não funcionam

htaccess – Redirecionamentos com mais de 1 nível de profundidade não funcionam

Acabei de mudar para hospedagem compartilhada no GoDaddy e estou tentando fazer minhas regras .htaccess funcionarem.

Aqui está o que eu tenho:

ErrorDocument 404 /error.php
Options FollowSymLinks

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^www\.mydomain\.org$
RewriteRule ^(.*)$ http://mydomain.org/$1 [R=301,L]

RewriteRule ^view/(\w+)$ viewitem.php?itemid=$1 [R=301,L]
RewriteRule ^category/(\w+)$ viewcategory.php?tag=$1 [R=301,L]

RewriteRule ^faq$ faq.php
RewriteRule ^about$ about.php
RewriteRule ^contact$ contact.php
RewriteRule ^submit$ submit.php
RewriteRule ^contactmsg$ handler-contact.php

Todas as páginas na raiz do domínio parecem estar funcionando, ou seja, mydomain.org/faq, mydomain.org/about estão funcionando.

Mas sempre que tento mydomain.org/category/somecategory, recebo um 404. Como posso corrigir meu .htaccess para obedecer a essas regras com mais de 1 nível de profundidade?

Obrigado,

EDIT: Corrigi as regras alterando-as para o seguinte:

RewriteRule ^view/(.*)$ viewitem.php?itemid=$1
RewriteRule ^category/(.*)$ viewcategory.php?tag=$1

Alguém pode confirmar/negar que este é oapropriadomaneira de consertar isso?

Responder1

A nova maneira como você está fazendo isso (com (.*)) está correta.

informação relacionada