【问题标题】:why does rewriterule not work in apache glassfish jsf combination为什么 rewriterule 在 apache glassfish jsf 组合中不起作用
【发布时间】:2019-02-14 16:50:10
【问题描述】:

我必须承认我在前端开发和基础架构方面几乎没有经验。

在一个 jsf2.3 webapp 中,我尝试创建一个漂亮的 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 我负责监督一些事情。谁能告诉我什么?

【问题讨论】:

  • fiersenvoorgaandeweg.nl/ventoux/fietser/1 为我工作......这里没有 404。成功遇到了 de inzameling!
  • 谢谢,我将 404 错误重定向到主页。所以您不会将其视为 404 错误。如您所见,带有 deelnemer.xhtml?id=1 的另一个 url 结果进入另一个页面,这是首选结果。

标签: jsf mod-rewrite url-rewriting apache2


【解决方案1】:

我设法实现了漂亮的面孔来实现所需的网址。简单点。

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

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

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

现在https://sitename/fietser/1 按我的意思显示骑自行车的人。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-17
    • 1970-01-01
    • 2012-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多