Apache2 mod_rewrite + userdir

3

Eu tenho um servidor Ubuntu (web) com a seguinte configuração

  • Versão: 13.10
  • Instalado: Apache2, apache2 utils, php5
  • Ativado: reescrever, userdir

Problema

Quando tento usar regras de reescrita, por exemplo, foo.bar.com/~«user»/page , obtenho

The requested URL /home/«user»/public_html/page.php was not found on this server.

Tanto quanto eu sei, está lá; quando eu visito foo.bar.com/~«user»/page.php ; tada! está aí.

Eu li todas as minhas configurações em /etc/apache2/apache2.conf , /etc/apache2/mods-available/userdir.conf mas nada me pareceu estranho.

Informações adicionais

Permissões para o usuário foder: drwx r-x r-x

Permissões para public_html drwx r-x r-x

Eu li que tenho que fornecer uma base de reescrita, mas eu realmente não vejo nada de estranho com o caminho

O que eu sinto falta?

Reescrever regras:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

Ou

RewriteRule ^login/?  login.php [L]

A propósito, eu tentei mover o diretório para / var / www e as regras de reescrita estão operacionais agora sem erros 404.

    
por erdemkeren 12.11.2013 / 14:23

2 respostas

4

Parece que você não tem um RewriteBase definido, por isso é mais provável que seja:

RewriteBase /

Então, se você quiser usá-lo para userdir , talvez você deva alterar suas regras de reconfiguração no arquivo de configuração do Apache - em apache2.conf ou httpd.conf - para ficar assim:

RewriteEngine on
RewriteBase /~username/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
    
por 12.11.2013 / 14:59
2

Encontrei isso em ubuntuforums.org:

RewriteBase /~username/

link

    
por 12.11.2013 / 14:58