我有一个非常简单的网站,它有一些静态页面,还有一些使用重写规则来提取数据的动态页面。例如:
RewriteRule ^phone-directory/([^/\.]+).htm$ number.php?for=$1 [L]
因此,任何像这样的网址:phone-directory/ google.htm 总是会在查询字符串上使用google加载number.php 。
我已经为 CMS 功能安装了 WordPress,但我仍然需要我的目录同时工作。我还希望目录使用 WordPress 主题,以便在站点范围内更改样式!
所以我在我的 WP 主题目录中设置了一个自定义模板,并在 word press 中设置了一个名为“company-listing”的“页面”。然后我将以下规则添加到我的 htaccess 文件的顶部:
RewriteRule ^phone-directory/([^/\.]+).htm$ index.php?p=23 [L]
p=23 指的是我的自定义页面“公司列表”的位置
该重写规则有效,并将我带到“公司列表”,但这就是问题所在,URL 重写为 domain.com/company-listing
我不希望它那样做。我认为我的重写规则被触发,然后当 index.php?p=23 被击中时,默认的 WordPress 重写规则触发器。我已经尝试了以下排除方法来阻止这种情况的发生,而不会感到高兴:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/(phone-directory/.*)$
RewriteCond %{REQUEST_URI} !^/(index.php?p=23)$
RewriteCond %{REQUEST_URI} !^/(company-listing/.*)$
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
有没有办法解决这个问题?要在 WordPress 中使用自定义模板并重写为我选择的 url?总之:
我想:
domain.com/phone-directory/google.htm
装载:
domain.com/index.php?p=23(这是 wordpress 中的“页面”)