Tôi đang sử dụng ứng dụng web AngularJS 1.3 với API REST Java/Jersey. Cuối cùng tôi đã html5mode làm việc với Tuckey UrlRewriteFilter để một cái gì đó đơn giản như localhost: 8080/#/trang tại là chỉ localhost: 8080/trang. Nhưng, dường như tôi không thể làm được điều phức tạp hơn như localhost: 8080/mypage/category/subcategory/item hoạt động bình thường. Url này sẽ được tải trong html5mode khi trong một tab trình duyệt duy nhất, nhưng nếu tôi mở liên kết trong một tab mới tôi nhận được một 404.Không thể nhận mã html5mode góc và UrlRewriteFilter làm việc với một số URL nhất định
Dưới đây là pom và web.xml của tôi file:
pom.xml
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
<init-param>
<param-name>confPath</param-name>
<param-value>/WEB-INF/urlrewrite.xml</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
web.xml:
<urlrewrite>
<rule match-type="wildcard">
<from>*/page</from>
<to>index.html</to>
</rule>
// what should this rule look like in order to recognize a url like:
// localhost:8080/mypage/category/subcategory/item
<rule match-type="wildcard">
<from>?</from>
<to>index.html</to>
</rule>
</urlrewrite>
tôi đọc qua UrlRewriteFilter documenta tion here và đã thử sử dụng các biến thể khác nhau của cú pháp đối sánh và ký tự đại diện, nhưng tôi luôn nhận được 404.
Tôi cũng sẽ thêm rằng tôi đang sử dụng phiên bản angular-ui-router 0.2.13 và url của tôi cho trang/trạng thái được đề cập trông giống như /mypage /: category /: subcategory /: item. Vì vậy, câu hỏi của tôi là làm thế nào tôi có thể phù hợp với mô hình này để chuyển hướng đến index.html hoạt động chính xác cho html5mode hoặc tôi nên cấu hình định tuyến khác nhau để làm việc tốt hơn với UrlRewriteFilter không? Không.