我正在尝试使用htaccess将动态URL自动更改为静态URL

时间:2016-01-30 18:29:31

标签: apache .htaccess mod-rewrite url-rewriting url-redirection

嘿,如果有人可以检查我的代码是什么, 我使用以下代码将动态URL转换为静态:

RewriteEngine On
RewriteRule ^([^-]*).jsp$ /page.php?fid=$1 [L]

但要使用静态URL打开,请在地址栏中输入静态URL。 如果输入动态URL,它不会自动更改为静态,但我想将其自动更改为静态URL。

动态网址:http://example.com/page.php?fid=926
静态网址:http://example.com/926.jsp

2 个答案:

答案 0 :(得分:0)

RewriteRule仅匹配路径。如果要匹配查询字符串,则必须执行以下操作。

RewriteCond %{QUERY_STRING} fid=(\d+)
RewriteRule ^page.php$ %1.jsp

答案 1 :(得分:0)

这应该有效:

RewriteEngine on

#redirect from /page.php?fid=123 to /123.jsp
RewriteCond %{THE_REQUEST} /page\.php\?fid=([^\s]+) [NC]
RewriteRule ^ /%1.jsp? [NC,L,R]
#Rewrite /123.jsp to /page.php?fid=123
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^.]+)\.jsp$ /page.php?fid=$1 [NC,L]