【发布时间】:2026-01-29 15:40:02
【问题描述】:
我有一个 wordpress 博客,其中我们已经有以下 htaccess 代码。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php
</IfModule>
# END WordPress
现在我想添加另一个规则以从特定 URL 中删除 .php 扩展名。
说。我们有 abc.com/def/ghi.php
我想要一个规则来忽略这个特定 url 的 .php 扩展名。我尝试了以下但它不起作用。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php
RewriteRule ^(def)/(ghi)/?$ /$1.php [L,NC]
</IfModule>
# END WordPress
我错过了什么吗?
【问题讨论】:
-
您需要将其移至规则顶部
-
@cmorrissey 是对的。
[L]-flag 表示最后一条规则,因此如果匹配 WP-index,则不处理其他规则。 -
此规则还将在内部调用脚本
/def.php... -
@cmorrissey 我将它替换到顶部,但仍然没有运气。您能否发布更新后的代码作为答案?
-
@arkascha 你能更正代码并作为答案发布吗?
标签: php wordpress apache .htaccess mod-rewrite