为什么 rewriterule 在 apache glassfish jsf 组合中不起作用
why does rewriterule not work in apache glassfish jsf combination
我必须承认我在前端开发和基础设施方面经验不足。
在 jsf2.3 webapp 中,我尝试创建一个漂亮的 URL。
https://fiersenvoorgaandeweg.nl/ventoux/deelnemer.xhtml?id=1
这个很好地展示了1个人的页面。
我希望 https://fiersenvoorgaandeweg.nl/ventoux/fietser/1 显示相同的页面。但是它提供了一个 404 页面。
我的测试服务器 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= [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 我负责一些事情。谁能告诉我是什么?
我设法实现了漂亮的外观来实现所需的 url。退出简单。
<url-mapping id="biker">
<pattern value="/fietser/#{id}" />
<view-id value="/deelnemer.xhtml" />
</url-mapping>
但是,我做了一些额外的美化 url:
在我耳边,我创建了一个 application.xml 文件,其中包含一个空的 contextPath,因此 war 名称永远不会出现在 url 中。
我用 *.xhtml.
更改了丑陋的面孔前缀
现在 https://sitename/fietser/1 显示骑自行车的人,就像我想的那样。
我必须承认我在前端开发和基础设施方面经验不足。
在 jsf2.3 webapp 中,我尝试创建一个漂亮的 URL。
https://fiersenvoorgaandeweg.nl/ventoux/deelnemer.xhtml?id=1
这个很好地展示了1个人的页面。 我希望 https://fiersenvoorgaandeweg.nl/ventoux/fietser/1 显示相同的页面。但是它提供了一个 404 页面。
我的测试服务器 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= [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 我负责一些事情。谁能告诉我是什么?
我设法实现了漂亮的外观来实现所需的 url。退出简单。
<url-mapping id="biker">
<pattern value="/fietser/#{id}" />
<view-id value="/deelnemer.xhtml" />
</url-mapping>
但是,我做了一些额外的美化 url:
在我耳边,我创建了一个 application.xml 文件,其中包含一个空的 contextPath,因此 war 名称永远不会出现在 url 中。 我用 *.xhtml.
更改了丑陋的面孔前缀现在 https://sitename/fietser/1 显示骑自行车的人,就像我想的那样。