Php 将url重定向到“状态已消失”

Php 将url重定向到“状态已消失”,php,.htaccess,http-status-codes,Php,.htaccess,Http Status Codes,这件事快把我逼疯了。不管我做什么,它都不会说那一页不见了。 完整的url类似于:example.com/product\u detail.php?id=18 我想给每一个以product_details.php开头的页面设置状态为“已消失” 我原以为其中一个会有用,但运气不好 RewriteRule ^product_detail - [G] RewriteRule ^product_detail.php?id=(.*)$ - [G] 谢谢你的帮助 您是否测试过该规则是否适用? 这对我很有用:

这件事快把我逼疯了。不管我做什么,它都不会说那一页不见了。 完整的url类似于:
example.com/product\u detail.php?id=18

我想给每一个以product_details.php开头的页面设置状态为“已消失”

我原以为其中一个会有用,但运气不好

RewriteRule ^product_detail - [G]
RewriteRule ^product_detail.php?id=(.*)$ - [G]

谢谢你的帮助

您是否测试过该规则是否适用? 这对我很有用:

重写规则^product_详细信息。*$-[G]

您是否在.htaccess文件中打开了重写引擎?(假设这就是您正在使用的)


在apache中是否启用了重写模块?在给定的位置允许重写吗?

根据John Lin的评论,我将重写规则移动到htaccess的顶部,然后它就开始工作了。进一步的测试表明,当我把重写规则放在Wordpress的基本行下面时

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
#开始WordPress
重新启动发动机
重写基/
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/index.php[L]
#结束WordPress
它不起作用,但当它在这些线之前时,它就起作用了。 今天学到了一些新东西


希望这对其他人也有帮助。

对我很有用,虽然第二条规则不需要谢谢,但这很有帮助。正如我所看到的,wordpress块将所有请求重定向到非文件和目录,并作为最后一条规则重定向到index.php(即[L],它告诉apache停止处理)-因此,无论您在重定向中添加了什么(对于不存在的文件),它都不会工作。感谢您解释WP重定向。我将把所有不存在文件的重定向放在WP块之前。