两个mod重写一页.htaccess

时间:2013-09-02 10:17:17

标签: .htaccess mod-rewrite

是否可以将两个mod重写规则指向一个页面?例如,我可以:

mysite.com/blog/15 AND mysite.com/blog/post-title

都指向: mysite.com/blogpost.php?id=15

谢谢:)

1 个答案:

答案 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]