Problema de reconfiguração de URL [duplicado]

3

Estou tentando reescrever o subdomínio da minha URL.

link nome de usuário .domain.com mostrará o conteúdo de link nome de usuário , mas o URL permanece como http: // nome de usuário .domain.com. (Eu quero dizer url mascarando )

(o nome do usuário pode conter a-z 0-9 e hipens) Além disso, se o subdomínio for www ou api , não os redirecione

Estou usando isso para meu .htaccess

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/index\.php$
RewriteCond %{HTTP_HOST} !^www\.domain\.com
RewriteCond %{HTTP_HOST} ^([^.]+)\.domain\.com
RewriteRule .* /user.php?u=%1 [L]

(Após o conselho de @ mfarver) Estou tentando isso

RewriteEngine on
RewriteRule .* /user.php?u=%1 [L]

mas desta vez recebendo 500 Erro interno do servidor:

[Mon May 30 20:10:44 2011] [alert] [client 81.6.xx.xxx] /home/blablabla/public_html/.htaccess: AllowOverride not allowed here

(do log de erros)

Configurações do virtualhost do link do meu servidor

<VirtualHost 109.73.70.169:80>
    <IfModule mod_userdir.c>
        UserDir disabled
        UserDir enabled USERNAME
    </IfModule>
    <IfModule concurrent_php.c>
        php4_admin_value open_basedir "/home/USERNAME/:/usr/lib/php:/usr/php4/lib/php:/usr/local/lib/php:/usr/local/php4/lib/php:/tmp"
        php5_admin_value open_basedir "/home/USERNAME/:/usr/lib/php:/usr/local/lib/php:/tmp"
    </IfModule>
    <IfModule !concurrent_php.c>
        <IfModule mod_php4.c>
            php_admin_value open_basedir "/home/USERNAME/:/usr/lib/php:/usr/php4/lib/php:/usr/local/lib/php:/usr/local/php4/lib/php:/tmp"
        </IfModule>
        <IfModule mod_php5.c>
            php_admin_value open_basedir "/home/USERNAME/:/usr/lib/php:/usr/local/lib/php:/tmp"
        </IfModule>
        <IfModule sapi_apache2.c>
            php_admin_value open_basedir "/home/USERNAME/:/usr/lib/php:/usr/php4/lib/php:/usr/local/lib/php:/usr/local/php4/lib/php:/tmp"
        </IfModule>
    </IfModule>
    ServerName DOMAIN.net
    ServerAlias *.DOMAIN.net
<Directory "/home/USERNAME/public_html">
    Options FollowSymLinks
    Allow from all
    AllowOverride All
</Directory>
    DocumentRoot /home/USERNAME/public_html
    ServerAdmin [email protected]
    UseCanonicalName Off
    CustomLog /usr/local/apache/domlogs/DOMAIN.net combined
    CustomLog /usr/local/apache/domlogs/DOMAIN.net-bytes_log "%{%s}t %I .\n%{%s}t %O ."
    ## User USERNAME # Needed for Cpanel::ApacheConf
    <IfModule mod_suphp.c>
        suPHP_UserGroup USERNAME USERNAME
    </IfModule>
    <IfModule !mod_disable_suexec.c>
        SuexecUserGroup USERNAME USERNAME
    </IfModule>
    ScriptAlias /cgi-bin/ /home/USERNAME/public_html/cgi-bin/


    # To customize this VirtualHost use an include file at the following location
    # Include "/usr/local/apache/conf/userdata/std/2/USERNAME/DOMAIN.net/*.conf"

</VirtualHost>

Além disso, o * .DOMAIN.net foi adicionado às minhas DNS ZONES como Um registro .

    
por Eray 30.05.2011 / 18:33

2 respostas

0

Se você estiver usando um arquivo .htaccess, seu servidor deve ter a direção AllowOverride para esses contextos de domínio. Verifique sua configuração geral dos servidores.

Além disso, você precisa de um redirecionamento para esse tipo de reescrita.

em vez de:     RewriteRule. * /User.php?u=%1 [L]

use:     RewriteRule. * link [r, L]

Após a sua edição: não é necessário redirecionar.

    
por 30.05.2011 / 22:18
0

Isso deve fazer o trabalho - você precisa do "PT" para impedir que ele seja um redirecionamento. Se não for um redirecionamento, o URL não será alterado no navegador:

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/index\.php$
RewriteCond %{HTTP_HOST} !^www\.domain\.com
RewriteCond %{HTTP_HOST} ^([^.]+)\.domain\.com
RewriteRule .* /user.php?u=%1 [PT,L]
    
por 01.06.2011 / 20:37