Você precisa mostrar mais informações. o que faz o httpd -S output?
Onde essas regras são colocadas?
Eu tenho o seguinte arquivo .htaccess:
RewriteEngine on
RewriteBase /
RewriteRule ^(/?)dir/?$ $1dir/subdir [L]
RewriteRule ^(/?)subdir2/?$ $1dir/subdir/subdir2 [L]
O redirecionamento funciona bem, se eu digitar o IP do domínio, mas digitar o nome do domínio / dir não me redireciona, em vez disso, mostra-me o conteúdo do diretório.
Outra questão: Como eu disse, o redirecionamento com o IP funciona bem. No entanto, embora o sinalizador 'R' não esteja definido, o URL é alterado na caixa de URL. O IP / dir muda para o subdiretório IP / dir /. Por quê?
EDIT (11:20 GMT + 1): Não tenho certeza se é de alguma relevância, mas antes de hoje o servidor não tinha um domínio. Acabei de comprar um domínio e configurar todo o servidor de nomes apontando para o servidor. Como posso acessar a página e me mostrar o conteúdo da pasta / dir, presumo que não estraguei nada lá.
EDIT (12:51 GMT + 1): Saída do apachectl -S:
apache2: Could not reliably determine the server's fully qualified domain name, using 0.0.10.188 for ServerName
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80 is a NameVirtualHost
default server 0.0.10.188 (/etc/apache2/sites-enabled/000-default:1)
port 80 namevhost 0.0.10.188 (/etc/apache2/sites-enabled/000-default:1)
Syntax OK
EDIT (19:26 GMT + 1): Encontrei o problema. O problema era que o nome do meu servidor não estava configurado e eu tinha duplicatas em ports.conf e httpd.conf, ambos onde "escutando". Obrigado por apontar o comando "apachectl -S". Um problema misterioso foi deixado: Por que a URL está mudando, embora nenhum sinalizador R esteja definido. Para sempre um mistério ...