重定向?src = URLHERE

时间:2013-11-01 11:44:47

标签: php regex apache .htaccess mod-rewrite

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

由此: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]

1 个答案:

答案 0 :(得分:0)

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

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