首页 > 解决方案 > 如果 url 末尾不存在扩展名(如 .png、.jpg),如何将用户从特定文件夹重定向到另一个位置

问题描述

如果 url 末尾不存在扩展名,我想将特定文件夹的所有 url 重定向到另一个位置。

我在服务器中有“测试”文件夹。

我的网址就像

www.example.com/Test/abc
www.example.com/Test/abc1
www.example.com/Test/abc2

所以我希望当用户点击这些网址时,它将被重定向到索引页面(www.example.com/index.php)

但是如果 url 末尾有扩展名,那么它不应该被重定向。

喜欢www.example.com/Test/logo.jpg, www.example.com/Test/p1.mp3

我曾尝试使用 .htaccess 文件来做到这一点。我能够重定向到索引页面,但我的问题是当用户点击任何图像 url 或 mp3 url 时,它也会将用户重定向到索引页面。

这是我的 .htaccess 文件

<IfModule mod_rewrite.c>
Options +SymLinksIfOwnerMatch 
RewriteEngine On 
Redirect /Test http://example.com/index.php?id=
</IfModule>

它将我重定向到以下网址

http://example.com/index.php?id=abc (if i clicked on http://example.com/Test/abc)

任何想法?

标签: phpapache.htaccess

解决方案


好吧,.htaccess您可以执行以下操作:

RewriteEngine On
RewriteRule ^Test/(.*)\.jpg$ /index.php?id=$1.jpg [L]
RewriteRule ^Test/(.*)\.mp3$ /index.php?id=$1.mp3 [L]

如果你想要301重定向:

RewriteCond %{REQUEST_URI} \.(jpg|png|mp3)$ [NC]
RewriteRule ^Test/(.*)$ http://example.com/index.php?id=$1 [R=301,L]

推荐阅读