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
.htaccess 如何重定向URL中带有问号的旧页面?_.htaccess_Redirect - Fatal编程技术网

.htaccess 如何重定向URL中带有问号的旧页面?

.htaccess 如何重定向URL中带有问号的旧页面?,.htaccess,redirect,.htaccess,Redirect,我在stackoverflow和其他网站上读过关于htaccess重定向和重写的文章,并学习了如何重定向简单的页面和目录,但还有大约30个链接我无法重定向。原因似乎是它们在链接的URL中包含“?”。我已经尝试了发布的解决方案,但我还没有能够充分理解它们以获得成功 这些工作: Redirect /Corpfleet.php htp://www.marketyourcar.cm/wraps.php Redirect /drivers.php htp://www.marketyou

我在stackoverflow和其他网站上读过关于htaccess重定向和重写的文章,并学习了如何重定向简单的页面和目录,但还有大约30个链接我无法重定向。原因似乎是它们在链接的URL中包含“?”。我已经尝试了发布的解决方案,但我还没有能够充分理解它们以获得成功

这些工作:

Redirect /Corpfleet.php     htp://www.marketyourcar.cm/wraps.php
Redirect /drivers.php       htp://www.marketyourcar.cm/drivers.php
Redirect /galleries.php     htp://www.marketyourcar.cm/galleries.php
这些方法不起作用:

Redirect /ad.php?View=FAQ       htp://www.marketyourcar.cm/advertiser-faqs.php
Redirect /ad.php?View=gallery   htp://www.marketyourcar.cm/galleries.php
Redirect /ad.php?View=Materials htp://www.marketyourcar.cm/products-services.php
是的,我知道上面的URL是htp和.cm-我不得不打破它,以使这篇文章与我的低声誉水平

如果有人能帮上忙,我将不胜感激。
谢谢

重定向
无法处理<代码>重写规则可以。这应该行得通

RewriteEngine on
RewriteRule ^/ad\.php\?View\=FAQ$ http://www.marketyourcar.cm/advertiser-faqs.php [R=301,L] 
RewriteRule ^/ad\.php\?View\=gallery$ http://www.marketyourcar.cm/galleries.php [R=301,L]
RewriteRule ^/ad\.php\?View\=Materials$ http://www.marketyourcar.cm/products-services.php [R=301,L] 
或者试试这个:

RewriteEngine on
RewriteRule ^/ad.php?View=FAQ$ http://www.marketyourcar.cm/advertiser-faqs.php [R=301,L] 
RewriteRule ^/ad.php?View=gallery$ http://www.marketyourcar.cm/galleries.php [R=301,L]
RewriteRule ^/ad.php?View=Materials$ http://www.marketyourcar.cm/products-services.php [R=301,L] 
这可能会奏效:

例如:

RewriteEngine On
RewriteRule ^/ad.php?View=FAQ$  http://www.marketyourcar.cm/advertiser-faqs.php? [R=301,L] 

将尾部的
添加到替换URL以删除传入的查询。

如果要从like重定向:

site.com/index.php?blabla=1&id=32

site.com/contact.html

然后使用:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{QUERY_STRING} blabla=1&id=32
RewriteRule ^(.*)$ http://www.site.com/contact.html? [R=301,L]
</IfModule>

重新启动发动机
RewriteCond%{QUERY_STRING}blablabla=1&id=32
重写规则^(.*)$http://www.site.com/contact.html? [R=301,L]

谢谢,我刚试过,但没用:它产生了一个404。“未找到此服务器上未找到请求的URL/ad.php。”是否确实在Apache设置中启用了
mod_rewrite
?此外,请查看本页右侧的相关链接。我所发布的内容和其他人的提示相结合应该会起作用。我刚刚学习了一个关于如何使用mod_rewrite的教程,它起了作用,所以我会说是的,它被启用了。我想我的部分问题是,我给你们的是实时服务器信息,而不是开发服务器信息。我不是在现场测试这段代码,所以我必须编辑所有内容以适应开发人员的设置:文件放在这里:
http://clients.lancedaoust.com/myc/
所以我编辑了您给我的代码以适应这一点:
RewriteRule/myc/ad.php?View=FAQ$http://www.marketyourcar.com/advertiser-faqs.php [R=301,L]