是否可以将两个 mod 重写规则指向一页?例如,我可以有:
mysite.com/blog/15和 mysite.com/blog/post-title
都指向: mysite.com/blogpost.php ?id=15
谢谢 :)
是否可以将两个 mod 重写规则指向一页?例如,我可以有:
mysite.com/blog/15和 mysite.com/blog/post-title
都指向: mysite.com/blogpost.php ?id=15
谢谢 :)
如果它特定于“15”和“post-title”,那么是的:
RewriteEngine On
RewriteRule ^/?blog/15$ /blogpost.php?id=15 [L]
RewriteRule ^/?blog/post-title$ /blogpost.php?id=15 [L]
如果它是“15:”并且“post-title”可以是任何东西,那么不是。
除非它有权访问实际映射(例如在数据库中),否则 mod_rewrite 无法知道后标题映射到什么 id。您可以使用RewriteMap定义映射类型并将其指向可以与数据库对话的文件或脚本,但映射必须在服务器/虚拟主机配置中定义。不能在 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]