
Tengo el siguiente archivo de host virtual:
<IfModule !wsgi_module>
LoadModule wsgi_module modules/mod_wsgi.so
WSGISocketPrefix run/wsgi
</IfModule>
<VirtualHost *:80>
RewriteEngine On
RewriteLog "/var/log/httpd/rewrite_log"
RewriteLogLevel 1
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,NE,L]
</VirtualHost>
<VirtualHost *:443>
ServerName https://tendril-api.dev.adnxs.net
ServerAlias 06.tendril-api.dev.nym2.adnexus.net/api
RewriteEngine on
RewriteRule ^docs$ docs/ [R]
...
# SSL & WSGI Setup
</VirtualHost>
Por alguna razón, mi docs
regla de reescritura no tiene ningún efecto. ¿Por qué es esto? Mi regla de reescritura HTTP-->HTTPS en *:80 VirtualHost funciona correctamente. Estoy haciendo algo realmente similar.
¿Tiene que ver con tener dos reglas de reescritura diferentes en diferentes VirtualHosts?
¿Algunas ideas?
Respuesta1
segúnhttp://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewriterule:-
¿Qué es coincidente?
En el contexto de VirtualHost, el patrón se comparará inicialmente con la parte de la URL después del nombre de host y el puerto, y antes de la cadena de consulta (por ejemplo, "/app1/index.html").
Su patrón coincide con una URL exacta de "docs". La URL real probablemente sea "/docs", por lo que agregar "/" después de "^" puede funcionar:
RewriteRule ^/docs$ docs/ [R]