php - Apache mod-rewrite htaccess - 带参数的动态 url

标签 php apache .htaccess mod-rewrite

我正在尝试获取以下动态 URL:

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

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

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

基本上,用户输入请求以查看文件/Web 服务器上可用的 PDF,并根据提供的 ID 号重写 URL 以从 DOCUMENT_ROOT/pdfs/ 下的子文件夹中检索文档其文件夹名称与提供的 ID 以及与同一 ID 匹配的 PDF 文件名相匹配。接下来我可以尝试什么?我尝试过的一切都不起作用。

最佳答案

在 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]

关于php - Apache mod-rewrite htaccess - 带参数的动态 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40248792/

相关文章:

php - 为内页添加第二个侧边栏

php - 安全下载文件

apache - 在 htaccess 中屏蔽 URL 重写

php - 从旧的 mysql 文件夹中获取旧的 MySQL 数据并导入到新数据库中

php - 使用 PHP 生成动态 HTML 页面

php - 如何从php/mysql中的同一张表中只获取一次重复值和多次重复值

php - 在没有数据库的情况下管理动态内容的最佳方式

apache - 重写规则以从 Rails 服务器的 URL 隐藏端口?

php - 如果我使用 PHP,如何解决 c10k 问题?

java - Apache Tomcat 主页打不开