为什么rewriterule在apache glassfish jsf组合中不起作用

时间:2019-02-08 15:11:58

标签: jsf mod-rewrite url-rewriting apache2

我必须承认,我在进行前端开发和基础架构方面经验不足。

在jsf2.3网络应用程序中,我尝试创建一个外观漂亮的URL。

https://fiersenvoorgaandeweg.nl/ventoux/deelnemer.xhtml?id=1

该页面很好地显示了1个人的页面。 我希望https://fiersenvoorgaandeweg.nl/ventoux/fietser/1显示同一页面。但是,它会提供页面404。

对于该域,我的testservers apache配置如下:

<IfModule mod_ssl.c>
<VirtualHost *:443>
    <Directory /var/www/html/fiersenvoorgaandeweg>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            require all granted
    </Directory>
    ServerName "fiersenvoorgaandeweg.nl"
    ServerAlias "www.fiersenvoorgaandeweg.nl"
    ServerAdmin info@myserver.org
    DocumentRoot /var/www/html/fiersenvoorgaandeweg
    ErrorLog /var/log/fiersenvoorgaandeweg.log
    LogLevel warn
    CustomLog /var/log/fiersenvoorgaandeweg.custom.log combined
    SSLEngine On
    RewriteEngine on
    RewriteRule     ^ventoux/fietser/([^/]+)/?$ ventoux/deelnemer.xhtml?id=$1 [L]
    SSLProxyEngine on
    SSLProxyCheckPeerCN off
    SSLProxyCheckPeerName off
    SSLCertificateFile /etc/ssl/fiersenvoorgaandeweg.nl/fiersenvoorgaandeweg.crt
    SSLCertificateKeyFile /etc/ssl/fiersenvoorgaandeweg.nl/private.key
    SSLCertificateChainFile /etc/ssl/fiersenvoorgaandeweg.nl/chain.crt
    ProxyPreserveHost On
    ProxyPass        /vent          http://localhost/
    ProxyPassReverse /vent          http://localhost/
    ProxyPass        /              http://localhost:9090/
    ProxyPassReverse /              http://localhost:9090/
</VirtualHost>
</IfModule>

Somway我监督了一些事情。有人可以告诉我什么吗?

1 个答案:

答案 0 :(得分:0)

我设法实现了漂亮的外观来实现所需的url。退出很简单。

<url-mapping id="biker">
    <pattern value="/fietser/#{id}" />
    <view-id value="/deelnemer.xhtml" />
</url-mapping>

但是,我做了一些额外的操作来美化网址:

在我的耳边,我创建了一个具有空contextPath的application.xml文件,因此war名称永远不会出现在url中。 我用* .xhtml更改了丑陋的面孔前缀。

现在https://sitename/fietser/1像我本应显示的那样显示骑自行车的人。