Apache mod-rewrite htaccess - 带参数的动态URL

时间:2016-10-25 20:06:43

标签: php apache .htaccess mod-rewrite

其他程序员!

我试图获取以下动态网址:

http://example.com/pdfs/viewpdf?id=1494

要在浏览器的地址栏中重写:

http://example.com/pdfs/1494/1494.pdf

基本上,用户正在输入查看文件/网络服务器上可用的PDF的请求,并根据提供的ID号,重写URL以从DOCUMENT_ROOT下的子文件夹中检索文档/ pdfs /其文件夹名称与提供的ID以及与相同ID匹配的PDF文件名相匹配。有人可以帮忙吗?我尝试过的一切都行不通。

提前致谢!

1 个答案:

答案 0 :(得分:1)

在root / .htaccess中尝试以下规则:

RewriteEngine on
#1 Iteration)Redirect "/pdfs/viewpdf/?id=123" to "/pdfs/123/123.pdf"
RewriteCond %{THE_REQUEST} /pdfs/viewpdf/?\?id=([^&\s]+) [NC]
RewriteRule ^ /pdfs/%1/%1.pdf? [L,R]
#2 iteration) internally map "/pdfs/123/123.pdf" to "/pdfs/viewpdf/?id=123"
RewriteRule ^pdfs/[^/]+/([^.]+)\.pdf$ /pdfs/viewpdf/?id=$1 [L,QSA]