我不知道怎么说这个,我无法理解httpd的文档,所以我想知道是否有人知道如何做到这一点。
我想得到
www.example.com/v/12345/yadayada.png
实际上去
www.example.com/view?key=12345&img=yadayada.png
我已经看到这样做了一些网站,但我不知道如何做到这一点。
由于
编辑1:
我试过了,然后输入了以下网址:
www.example.com/v/3f210a2c76cb100f4f7fbd7691a9eb967cb7a1a7/10b78802581bfd59f3fe2b447575bdf7.png
当我这样做时,我收到以下错误:
在此服务器上找不到请求的网址/v/3f210a2c76cb100f4f7fbd7691a9eb967cb7a1a7/10b78802581bfd59f3fe2b447575bdf7.png。
这是我目前的.htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
RewriteRule ^([^./]+\.png)$ /i/$1 [L,NC]
RewriteRule ^v/([0-9]+)/([^/.]+\.(png|jpe?g|gif))$ /view.php?k=$1&img=$2 [L]
答案 0 :(得分:0)
在文档根目录中的htaccess文件中尝试这些规则:
RewriteEngine On
RewriteRule ^v/([0-9a-f]+)/([^/.]+\.(png|jpe?g|gif))$ /view?key=$1&img=$2 [L]
答案 1 :(得分:0)
@JonLin有正确的规则,但你在那之前声明了重写规则,
RewriteRule ^([^./]+\.png)$ /i/$1 [L,NC]
适用于您提供的示例网址。所以,请求
www.example.com/v/3f210/10b7.png
将被重写为
www.example.com/i/v/3f210/10b7.png
值得注意的是用于规则的旗帜
L - Stop the rewriting process immediately and don't apply any more rules
NC - Makes the pattern comparison case-insensitive.
如果要删除该规则,您将获得所需的结果。您还应确定是否需要该规则并对其进行修改,标记和/或重新排列规则的顺序。
RewriteEngine On
RewriteRule ^v/([0-9]+)/([^/.]+\.(png|jpe?g|gif))$ /view.php?k=$1&img=$2 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]