是否可以将两个mod重写规则指向一个页面?例如,我可以:
mysite.com/blog/15 AND mysite.com/blog/post-title
都指向: mysite.com/blogpost.php?id=15
谢谢:)
答案 0 :(得分:0)
如果它特定于“15”和“后标题”,那么是:
RewriteEngine On
RewriteRule ^/?blog/15$ /blogpost.php?id=15 [L]
RewriteRule ^/?blog/post-title$ /blogpost.php?id=15 [L]
如果它是“15:并且”后标题“可以是任何东西,那么没有。
mod_rewrite无法知道post-title映射到的id是什么,除非它可以访问实际的映射(例如在数据库中)。您可以使用RewriteMap定义映射类型并将其指向可与数据库通信的文件或脚本,但必须在server / vhost配置中定义映射。无法在htaccess文件中使用它。
最好只将该功能添加到blogpost.php
脚本并将标题传递给它。例如:
RewriteEngine On
RewriteRule ^/?blog/([0-9]+)$ /blogpost.php?id=$1 [L]
RewriteRule ^/?blog/([A-Za-z0-9-]+)$ /blogpost.php?title=$1 [L]