【问题标题】:Redirect Without Changing URL using .htaccess使用 .htaccess 重定向而不更改 URL
【发布时间】:2014-05-25 18:48:12
【问题描述】:

我想从图片 url 重定向到页面 url。

nevil120.herobo.com/images/Chrysanthemum.jpgnevil120.herobo.com/index.php?image=free

应该会发生重定向,但不应在浏览器中更改 url。网址应保持为 nevil120.herobo.com/images/Chrysanthemum.jpg 并且页面应加载。

如何通过.htaccess的重定向规则来实现?

【问题讨论】:

  • 我的回答对你有帮助吗?
  • @Jonan 还没有。我已更改 .htaccess 文件内容。由于最后一行,甚至无法打开网站。还有一件事,我想从图片网址重定向到页面网址,但在浏览器中,应该只显示图片网址。
  • 我编辑了答案,现在可以使用了
  • Chrysanthemum.jpgimage=free 有什么关系?图片名称是another.jpg

标签: php .htaccess web-applications web


【解决方案1】:

你可以这样做:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} \.(jpg)$ [NC]    
RewriteRule RewriteRule ^images/([^/]+)$ index.php?image=free [QSA,L]

这会将所有带有 .jpg 扩展名的图像重定向到 index.php?image=free。 如果你想让images/Chrysanthemum.jpg 重定向到index.php?image=Chrysanthemum.jpg 你可以这样做:

RewriteRule ^images/([^/]+)$ index.php?image=$1 [QSA,L]

注意:QSA 标志会将原始网址中的任何参数附加到新网址。这意味着如果有人去images/Chrysanthemum.jpg?image=dandelion$_GET['image'] 变量将是蒲公英。要仍然获取第一个图像参数(Chrysanthemum.jpg),您可以在 php 中使用以下正则表达式:

$image = preg_replace('/image=([^&]+).*/', '$1', $_SERVER['QUERY_STRING']);

或者您可以删除 QSA 标志

【讨论】:

    猜你喜欢
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多