我在apache后面运行tomcat。现在我需要通过从 URL 中删除参数名称来应用友好的 url。我想要
http://<domainname>/<APPLICATION>/QWERTY
这些内部应该作为
http://<domainname>/<APPLICATION>/vid=QWERTY
所以在tomcat中我可以得到vid的值并相应地处理请求
为此我尝试过,
<IfModule rewrite_module>
RewriteEngine On
RewriteCond %{QUERY_STRING} !vid=(.*)$ [NC]
RewriteCond %{REQUEST_URI} !/assets/$ [NC]
RewriteRule ^/APPLICATION/(.*)$ /APPLICATION/?vid=$1 [R=301,L]
</IfModule>
通过应用此应用程序,当我给出http://<domainname>/<APPLICATION>/QWERTY
但在浏览器 URL 栏中,URL 更改为http://<domainname>/<APPLICATION>/vid=QWERTY
我也需要http://<domainname>/<APPLICATION>/QWERTY
在浏览器地址中。
更新:
通过“Jacek_FH”的回答,我已经更新了我的规则 [已删除R=301
]
RewriteCond %{QUERY_STRING} !vid= [NC]
RewriteCond %{REQUEST_URI} !/assets/ [NC]
RewriteRule ^/APPLICATION/(.*)$ /APPLICATION/?vid=$1 [L]
未找到其提供的资源异常(404)
所以为了测试我已经将我的友好网址更改为http://<domainname>/<APPLICATION>/u=QWERTY
并尝试 了
RewriteRule ^/APPLICATION/u=(.*)$ /APPLICATION/?vid=$1 [L]
但这也会导致tomcat中的404。