Regola Apache Mod_rewrite che lavora su un server, ma non su un altro

Sto usando mod_jk e mod_rewrite su httpd 2.2.15. Ho una regola ….

RewriteCond %{REQUEST_URI} !^/video/play\.xhtml.* RewriteRule ^/video/(.*) /video/play.xhtml?vid=$1 [PT] 

Voglio solo riscrivere qualcosa di simile a / video / videoidhere a /video/play.xhtml?vid=videoidhere Questo funziona perfettamente sulla mia macchina per sviluppatori, ma sulla produzione ho un 404 (generato da Jboss, non Apache).

ecco la coda di access.log e rewrite.log su prod (rotto). il rewrite.log è esattamente lo stesso su dev (working)

 applying pattern '^/video/(.*)' to uri '/video/46279d4daf5440b2844ec831413dcc3b' RewriteCond: input='/video/46279d4daf5440b2844ec831413dcc3b' pattern='!^/video/play\.xhtml.*' => matched rewrite '/video/46279d4daf5440b2844ec831413dcc3b' -> '/video/play.xhtml?vid=46279d4daf5440b2844ec831413dcc3b' split uri=/video/play.xhtml?vid=46279d4daf5440b2844ec831413dcc3b -> uri=/video/play.xhtml, args=vid=46279d4daf5440b2844ec831413dcc3b forcing '/video/play.xhtml' to get passed through to next API URI-to-filename handler "GET /video/46279d4daf5440b2844ec831413dcc3b HTTP/1.1" 404 420 "-" "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.6) Gecko/20100628 Ubuntu/10.04 (lucid) Firefox/3.6.6" 

Posso accedere a http://www.fivi.com/video/play.xhtml?vid=46279d4daf5440b2844ec831413dcc3b ma non / video / 46279d4daf5440b2844ec831413dcc3b

Entrambi i server stanno usando anche lo stesso httpd.conf e i moduli.

Ho costruito Apache con …

 ./configure --prefix /usr/local/apache2.2.15 --enable-alias --enable-rewrite --enable-cache --enable-disk_cache --enable-mem_cache --enable-ssl --enable-deflate 

Grazie, Mason

—- UPDATE —- -mod-jk.conf

 JkWorkersFile /usr/local/apache2.2.15/conf/workers.properties JkLogFile /var/log/mod_jk.log JkLogLevel info JkLogStampFormat "[%a %b %d %H:%M:%S %Y]" JkOptions +ForwardKeySize +ForwardURICompatUnparsed -ForwardDirectories JkRequestLogFormat "%w %V %T" JkShmFile run/jk.shm <Location /jkstatus> JkMount status Order deny,allow Deny from all Allow from 127.0.0.1 </Location> 

-workers.properties

 worker.node1.port=8009 worker.node1.host=75.102.10.74 worker.node1.type=ajp13 worker.node1.lbfactor=20 worker.node1.ping_mode=A #As of mod_jk 1.2.27 worker.node2.port=8009 worker.node2.host=75.102.10.75 worker.node2.type=ajp13 worker.node2.lbfactor=10 worker.node2.ping_mode=A #As of mod_jk 1.2.27 worker.loadbalancer.type=lb worker.loadbalancer.balance_workers=node2,node1 worker.loadbalancer.sticky_session=True worker.status.type=status 

-httpd.conf

 ServerName www.fivi.com:80 Include /usr/local/apache2.2.15/conf/mod-jk.conf NameVirtualHost * <VirtualHost *> ServerName * DocumentRoot /usr/local/apache2/htdocs JkUnMount /* loadbalancer RedirectMatch 301 /(.*) http://www.fivi.com/$1 </VirtualHost> <VirtualHost *> ServerName www.fivi.com ServerAlias www.fivi.com images.fivi.com JkMount /* loadbalancer JkMount / loadbalancer 

[root @ fivi conf] # /usr/local/apache2.2.15/bin/httpd -M

 Loaded Modules: core_module (static) authn_file_module (static) authn_default_module (static) authz_host_module (static) authz_groupfile_module (static) authz_user_module (static) authz_default_module (static) auth_basic_module (static) cache_module (static) disk_cache_module (static) mem_cache_module (static) include_module (static) filter_module (static) deflate_module (static) log_config_module (static) env_module (static) headers_module (static) setenvif_module (static) version_module (static) ssl_module (static) mpm_prefork_module (static) http_module (static) mime_module (static) status_module (static) autoindex_module (static) asis_module (static) cgi_module (static) negotiation_module (static) dir_module (static) actions_module (static) userdir_module (static) alias_module (static) rewrite_module (static) so_module (static) jk_module (shared) Syntax OK 

  • Come riscrivere l'URI da root se il file esiste nella cartella?
  • htaccess redirect tutti a un file (tranne che da localhost)
  • .htaccess non funziona (mod_rewrite)
  • ProxyHTMLURLMap non funziona in apache2.4
  • Laravel e Wordpress sullo stesso server / dominio
  • Non riesco a capire come abilitare mod_rewrite su ubuntu
  • apache mod_rewrite non riesce quando esiste lo stesso file
  • Reindirizzamento SSL senza sollevare un avviso
  • 2 Solutions collect form web for “Regola Apache Mod_rewrite che lavora su un server, ma non su un altro”

    Questo potrebbe essere uno stupido, ma ho occasionalmente eseguito (Debian / Ubuntu) in un sistema in cui le istruzioni del module ReWrite non erano nel giusto ordine, quindi c'era una sezione:

     <IfModule mod_rewrite.so> ... </IfModule> 

    che è venuto (questo è stato difficile da tracciare attraverso tutte le istruzioni Include) prima apache visto le istruzioni LoadModule.

    Se esiste un'istruzione IfModule, prova a commentarla e vedere se ti stai fuori.

    Questo è vecchio, ma poiché non esiste una risposta accettata. Ho avuto problemi simili con le stesse regole di riscrittura che lavorano nella produzione ma non nell'ambiente di sviluppo. Trovato questa impostazione che mancava nell'ambiente di sviluppo e aggiungendolo risolto.

    In mod_jk.conf aggiungere

    JkMountCopy 'All'

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.