Pregunta

Tenemos un sitio web creado por Django. Y no hay problema cuando el acceso siguiente URL sobre el entorno de trabajo local:

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

" c% 23 " es urlencode de " c # " ;, que funciona bien localmente. Pero después de implementarlo en el servidor de alojamiento Bluehost (apache + fastcgi), esta URL se ha resuelto en una nueva dirección como esta:

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

Eso es muy raro. Probablemente no sea un problema de Django, pero tiene algo que ver con Apache url reescribe. Si tiene alguna idea o sugerencia sobre cómo solucionar esto, avíseme. Gracias de antemano.

Aquí está el archivo .htaccess que puede considerarse:

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] 

y el archivo 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: Si esto es causado por la configuración en httpd.conf, ¿cómo puedo anular el archivo .htaccess mientras no tengo permiso?

¿Fue útil?

Solución

Solo algunos consejos antes de continuar:

¿Has probado con otros caracteres como un espacio (% 20) o un carácter ASCII acentuado? Además, ¿ha intentado poner otros caracteres después del% 23 (que no sea la barra) para ver si también están despojados?

Una suposición podría ser que, dado que el # se considera como un ancla en la página actual, el # y todo lo que esté después se eliminará en la reescritura.

Otros consejos

Tendría que estar de acuerdo con la primera respuesta, y sin acceso a la configuración de apache, es posible que no tenga suerte. Usar 'CSharp' o algo por el estilo podría ser el camino a seguir.

# tiene un significado especial en URI, igual que / o? hace. ¿Tienes este problema con otros símbolos? En última instancia, no debería usar un signo # en un URI de todos modos, a menos que se refiera a un ancla en la página.

http://httpd.apache.org/docs/2.2/rewrite /rewrite_guide.html

Lea la sección de reescritura de anclaje.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top