我正在尝试将网站转换为WordPress。当前使用的URL的格式为:http://www.example.com/database/44/category/short-item-description.html
为了显示存储在数据库中的项目,我创建了一个页面模板DatabaseFetch。php和已在WordPress中添加了一个页面,以便在地址处使用此模板http://www.example.com/database/
(也可以通过http://www.example.com/index.php?p=39
)
模板DatabaseFetch。php将使用php代码从URL中获取ID号,然后使用此ID号从数据库中获取相关项目的详细信息。
我正在试图改变。在WordPress根文件夹中找到htaccess文件,因为我希望所有URL的格式为http://www.example.com/database/44/category/short-item-description.html
待处理人http://www.example.com/database/
但我希望浏览器以以下格式显示URLhttp://www.example.com/database/44/category/short-item-description.html
(即URL不更改)
在过去的几天里,我尝试了很多组合,但都没有成功。使用该行:
RewriteRule ^/?database/([0-9]+)/?([a-zA-Z0-9_-]*)/?([a-zA-Z0-9_-]*).html$ /database/ [NC,L]
打开WordPress 404页面。
使用该行:
RewriteRule ^/?database/([0-9]+)/?([a-zA-Z0-9_-]*)/?([a-zA-Z0-9_-]*).html$ /?p=39 [NC,L]
显示正确的页面,但浏览器中的URL更改为
http://www.example.com/database/
有人知道我需要如何更改。htaccess下面的文件来获得我想要的结果?
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# RewriteRule ^/?database/([0-9]+)/?([a-zA-Z0-9_-]*)/?([a-zA-Z0-9_-]*).html$ /database/ [NC,L]
RewriteRule ^/?database/([0-9]+)/?([a-zA-Z0-9_-]*)/?([a-zA-Z0-9_-]*).html$ /?p=39 [NC,L]
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
我还尝试了两行有标志和无标志以及标志的组合,但都没有得到想要的结果。在非Wordpress安装中,我通过中的一行定义了所需的结果。htaccess
RewriteRule ^/?database/([0-9]+)/?([a-zA-Z0-9_-]*)/?([a-zA-Z0-9_-]*).html$ database.php?id=$1 [NC,L]
WordPress的问题是,我需要的数据库页面不是物理DatabaseFetch。php文件。因此,我如何进行重写?任何帮助都将不胜感激。