【问题标题】:Redirect ?src=URLHERE重定向 ?src=URLHERE
【发布时间】:2013-11-01 11:44:47
【问题描述】:

我希望能够将我的长链接重定向到一个较短的链接,

来自:http://mydomain.com/deploy/inc/PhpThumb/phpThumb.php?src=URLHERE 对此:http://mydomain.com/PhpThumb/URLHERE

这是我尝试在我的 .htaccess 文件中执行的操作:

RewriteEngine On
RedirectRule ^PhpThumb/([A-Za-z0-9-]+)$    deploy/inc/PhpThumb/phpThumb.php?src=$1    [NC,L]

不知道我做错了什么。

编辑,这是我的 .htaccess 中的内容:

Options -Indexes
ErrorDocument 404 /_1/www/index.php?error=404
ErrorDocument 403 /_1/www/index.php?error=403


RewriteEngine On
#RewriteRule ^PhpThumb$ /deploy/inc/PhpThumb/phpThumb.php

RewriteCond %{QUERY_STRING} !^src=.+ [NC]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+PhpThumb/([^\s]+) [NC]
RewriteRule ^ deploy/inc/PhpThumb/phpThumb.php?src=%1 [QSA,L,NE]

【问题讨论】:

标签: php regex apache .htaccess mod-rewrite


【解决方案1】:

您需要使用 THE_REQUEST 变量进行此重定向,因为您将 URL 作为原始 URL 的一部分传递。

RewriteCond %{QUERY_STRING} !^src=.+ [NC]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(phpthumb)/([^\s]+) [NC]
RewriteRule ^ /(%1)/?src=%2 [QSA,L,NE]

【讨论】:

  • 由于某种奇怪的原因破坏了我的 ErrorDocument 404,但仍然无法正常工作。
  • 把它放在我的 .htaccess 中并尝试转到此链接:zontm.co.uk/PhpThumb/https://fbcdn-sphotos-b-a.akamaihd.net/… 仍然找不到 404。
  • 我已经对其进行了测试并发现它可以正常工作。如果您的 .htaccess 中有更多规则,请发布您的问题。还要确保其他任何地方都没有其他 .htaccess?
  • 添加了我的 htaccess,将以前的重命名为 .htaccess1,因为我现在不需要它们。
  • 不是真的没有。让我先清除服务器上的旧文件夹,然后再回复您。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-08
  • 1970-01-01
  • 2016-06-29
  • 2016-12-05
  • 1970-01-01
  • 2020-04-28
  • 2015-10-27
相关资源
最近更新 更多