2009-09-05 5 views
1

Je veux faire Réécriture URL dans Tomcat en utilisant UrlRewriteFilter Ceci est la règle comme dans mod_rewrite apacheUrlRewriteFilter équivalent pour mod_rewrite

RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule (.*) index.php/$1 [L] 

Je suis confus dans la façon de vérifier le nom du fichier de demande si ce n'est pas un fichier ou pas un dossier dans UrlRewriteFilter

Quelqu'un peut-il m'aider?

Répondre

0

Vous ne pouvez pas. Eh bien, vous pouvez si vous utilisez la version UrlRewriteFilter 3.2 et vous allez écrire votre propre personnalisé class-rule pour le vérifier; mais ce n'est pas vraiment ce pour quoi UrlRewriteFilter a été conçu.

Cela appartient définitivement à mod_rewrite d'Apache, d'autant plus que vous avez index.php dans votre exemple. Pourquoi cette requête serait-elle transmise/servie par Tomcat?

+0

Bonjour, Oui en regardant la règle index.php, cela peut sembler étrange d'être servi par Tomcat. Eh bien, mon programme est écrit sur php. Et j'utilise PHP Java Bridge pour l'exécuter sur Tomcat. Et oui ça marche plutôt bien, sauf quand j'ai besoin d'Url Rewrite Dans Apache, la règle est facile à écrire. Eh bien parce que par ce que vous avez dit je peux si j'écris ma propre classe personnalisée, je vais essayer de rechercher ce sujet PS: Je cours php sur Tomcat parce que je voulais utiliser les rapports Jasper pour mon application php Si vous savez comment intégrer Jasper Rapports de l'autre côté, S'il vous plaît être aimable pour me le faire savoir –

+1

Erwin, je suggère que vous regardez dans l'exécution d'Apache en face de Tomcat. Avoir votre application PHP s'exécuter dans Apache et utiliser régulièrement mod_rewrite (beaucoup plus facile et très probablement plus rapide que dans Tomcat) et exécuter Jasper dans Tomcat. Vous pouvez ensuite appeler des rapports Jasper via l'URI local avec les paramètres nécessaires. Jetez un oeil à http://tomcat.apache.org/connectors-doc/webserver_howto/apache.html sur la façon d'exécuter Apache avec Tomcat; vous pouvez aussi le faire via mod_proxy. Google (http://www.google.com/search?q=run+apache+with+tomcat) a également quelques résultats – ChssPly76

0

En fait, vous n'avez pas à vous en préoccuper. Le module mod_rerwite d'Apache s'en occupe pour vous. Essayez-le .. Si vous essayez d'accéder à un dossier ou un fichier dans le serveur, il va l'ouvrir, où il va appliquer le RewriteRule que vous avez là-bas.

+0

Oui, il a travaillé sur Apache, mais actuellement je suis en train de le faire fonctionner sur Tomcat. Il devra donc être converti en condition UrlRewriteFilter. Merci d'avoir répondu –

0

Cela a fonctionné pour moi

<?xml version="1.0" encoding="utf-8"?> 
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 4.0//EN" 
     "http://www.tuckey.org/res/dtds/urlrewrite4.0.dtd"> 
<urlrewrite> 
    <rule> 
     <note> 
      Fitler for checking if file exists. 
     </note> 
     <condition type="request-filename" operator="notfile" next="and" /> 
     <condition type="request-filename" operator="notdir" /> 
     <from>(.*)</from> 
     <to type="redirect" last="true">index.php/$1</to> 
    </rule> 
</urlrewrite>