Pergunta

Temos um site feito por Django. E não há nenhum problema quando o acesso seguinte url no ambiente de trabalho local:

http://site/tags/c%23/

"c% 23" é urlencode de "c #", que funciona bem localmente. Mas depois que implantá-lo em Bluehost hospedagem servidor (apache + fastcgi), este URL foi resolvido para um novo endereço assim:

http://site/t/tags/c/ 

Isso é muito estranho. Provavelmente não é um problema do Django, mas tem algo a ver com reescrita do Apache url. Se você tem alguma idéia ou sugestão como corrigir isso por favor me avise. Agradecemos antecipadamente.

Aqui está o arquivo .htaccess pode ser considerado:

AddHandler fcgid-script .fcgi 
#AddHandler fastcgi-script .fcgi 
#AddHandler application/cgi .fcgi 
#AddHandler cgi-script .fcgi 
RewriteEngine On 
RewriteBase / 
#static file setting 
RewriteRule ^(media/.*)$ - [L] 
RewriteRule ^(static/.*)$ - [L] 
RewriteCond %{REQUEST_URI} !(dispatch.fcgi) 
RewriteRule ^(.*)$ dispatch.fcgi/$1 [L] 

eo arquivo dispatch.fcgi:

#!/home/***/python/bin/python 
import sys, os 
# Add a custom Python path. 
sys.path.insert(0, "/home/***/python") 
sys.path.insert(0, "/home/***/working/Django-1.0") 
os.chdir("/home/***/working/Django-1.0/project") 
os.environ['DJANGO_SETTINGS_MODULE'] = "project.settings" 
from django.core.servers.fastcgi import runfastcgi 
runfastcgi(["method=threaded", "daemonize=false"]) 

UPDAET:? Se isso é causado pelas configurações no httpd.conf, como posso substituir no arquivo .htaccess, enquanto eu não tenho permissão para ele

Foi útil?

Solução

Apenas algumas dicas antes de ir mais longe:

Você já tentou com outros personagens, como um espaço (20%) ou um caractere ASCII acentuado? Além disso, você já tentou colocar outros personagens após o% 23 (à excepção da barra) para ver se eles estão despojado também?

Uma suposição pode ser que como o # é considerado como uma âncora na página atual, o # e tudo o que é depois será retirado na reescrita.

Outras dicas

Eu tenho que concordar com a primeira resposta - e sem acesso à configuração do apache, você pode estar fora de sorte. Usando 'CSharp' ou algo nesse sentido pode ser o caminho a percorrer.

# tem um significado especial na URI, mesmo que / ou? faz. Você tem este problema com outros símbolos? Em última análise, você não deve estar usando um sinal # em um URI de qualquer maneira, a menos que você está se referindo a uma âncora na página.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top