Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从一个静态URL重定向或重写到另一个静态URL_Php_.htaccess_Url_Redirect - Fatal编程技术网

Php 从一个静态URL重定向或重写到另一个静态URL

Php 从一个静态URL重定向或重写到另一个静态URL,php,.htaccess,url,redirect,Php,.htaccess,Url,Redirect,我想将一个静态URL重定向到另一个静态URL,但无法执行此操作 我要从中重定向的URL: http://www.eyecatchers.co/blogdetail.php?id=24%2FWHY-YOUR-WEBSITE-IS-THE-NERVE-CENTER-OF-YOUR-ONLINE-MARKETING-%E2%80%93-AN-EYECATCHERS%E2%80%99-TAKE%E2%80%A6..%2F 为此: http://www.eyecatchers.co/blog/WHY-Y

我想将一个静态URL重定向到另一个静态URL,但无法执行此操作

我要从中重定向的URL:

http://www.eyecatchers.co/blogdetail.php?id=24%2FWHY-YOUR-WEBSITE-IS-THE-NERVE-CENTER-OF-YOUR-ONLINE-MARKETING-%E2%80%93-AN-EYECATCHERS%E2%80%99-TAKE%E2%80%A6..%2F
为此:

http://www.eyecatchers.co/blog/WHY-YOUR-WEBSITE-IS-THE-NERVE-CENTER-OF-YOUR-ONLINE-MARKETING-AN-EYECATCHERS-TAKE
我尝试了
301
redirect,但没办法。还尝试了以下方法:

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^blogdetail.php?id=24%2FWHY-YOUR-WEBSITE-IS-THE-NERVE-CENTER-OF-YOUR-ONLINE-MARKETING-%E2%80%93-AN-EYECATCHERS%E2%80%99-TAKE%E2%80%A6..%2F http://www.eyecatchers.co/blog/WHY-YOUR-WEBSITE-IS-THE-NERVE-CENTER-OF-YOUR-ONLINE-MARKETING-AN-EYECATCHERS-TAKE [R=301,L]

这也不起作用。

URL部分在
之后?
表示查询字符串。在RewriteRule的模式中,您不能与
查询字符串
匹配。您需要使用
{the_request}
变量匹配
{QUERY_STRING}
或完整的请求头

 RewriteEngine on

RewriteCond %{THE_REQUEST} /blogdetail.php\?id=.+WHY-YOUR-WEBSITE-IS-THE-NERVE-CENTER-OF-YOUR-ONLINE-MARKETING.+ [NC]
RewriteRule ^ http://www.eyecatchers.co/blog/WHY-YOUR-WEBSITE-IS-THE-NERVE-CENTER-OF-YOUR-ONLINE-MARKETING-AN-EYECATCHERS-TAKE? [R=301,L]
尝试:


这将处理所有此类链接,即/blogdail.php?id=将简单地替换为/blog/

抱歉,它不起作用,它给了我500个内部服务器错误,以避免混淆,我将所有特殊uri字符替换为
+
。请尝试更新的规则。抱歉,这也不起作用,给我同样的500服务器错误抱歉有一个小错误。您的规则将重定向
http://www.eyecatchers.co/blogdeail.php?id=24%2FWHY-Your-WEBSITE-IS-THE-NERVE-CENTER-OF-Your-ONLINE-MARKETING-%E2%80%93-AN-eyecatchers%E2%80%99-TAKE%E2%80%A6..%2F
http://www.eyecatchers.co/blog/24%2FWHY-YOUR-WEBSITE-IS-THE-NERVE-CENTER-OF-YOUR-ONLINE-MARKETING-%E2%80%93-AN-eyecatchers%E2%80%99-TAKE%E2%80%A6..%2F
哦,我以为FROM链接中有一些字符,它们错在那里了,我的错!感谢您的回复。但现在的问题是/blogdail.php?id=将被/blog/简单替换,24%2F将如何从该链接中删除?是的,请参阅@starkeen。我的解决方案适用于所有普通URL,并且是通用的。
RewriteEngine on
RewriteCond %{THE_REQUEST} /blogdetail.php\?id=([^\s]+) [NC]
RewriteRule ^ /blog/%1? [R=301,NC,L,R]