我有一个看起来像这样的网址:
example.com/upload/2018/01/11/ABCDE.jpg
example.com/upload/2018/01/10/BCDEF.jpg
example.com/upload/2017/02/11/12345.jpg
文件名在所有文件夹之间都是唯一的,我将如何转换该 URL 以访问上面的 url:
example.com/upload/ABCDE.jpg
example.com/upload/BCDEF.jpg
example.com/upload/12345.jpg
使用 htaccess 后,当用户输入
example.com/upload/ABCDE.jpg
重写到我的路由.php首先从数据库中获取原始URL
example.com/upload/route.php?i=ABCDE.jpg
当重写到route.php
时,URL仍然没有改变,但是在route.php
获得原始URL并使用PHP标头重定向它后,URL被更改了,有什么解决方案可以防止URL更改吗?
这里 .htaccess:
RewriteEngine On
RewriteBase /upload/
RewriteRule ^([^/.]+.jpe?g)$ route.php?i=$1 [L,QSA,NC]
路由.php从数据库获取原始 URL
<?php
/* some sql selection */
header("Location: $url"); // redirect to original URL <-- this will change the URL, but i want to prevent it.
?>
要重写为 example.com/upload/route.php?i=ABCDE.jpg
,请使用以下代码在目录中创建一个新的 .htaccess /upload/
:
RewriteEngine On
RewriteBase /upload/
RewriteRule ^([^/.]+.jpe?g)$ route.php?i=$1 [L,QSA,NC]