Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess 一页两个mod重写。htaccess_.htaccess_Mod Rewrite - Fatal编程技术网

.htaccess 一页两个mod重写。htaccess

.htaccess 一页两个mod重写。htaccess,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,有可能有两条mod重写规则指向一个页面吗?例如,我可以: mysite.com/blog/15和 mysite.com/blog/post-title 两者都指向: mysite.com/blogpost.php?id=15 谢谢:)如果是针对“15”和“帖子标题”,那么是: RewriteEngine On RewriteRule ^/?blog/15$ /blogpost.php?id=15 [L] RewriteRule ^/?blog/post-title$ /blogpost.php?

有可能有两条mod重写规则指向一个页面吗?例如,我可以:

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

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

谢谢:)

如果是针对“15”和“帖子标题”,那么是:

RewriteEngine On
RewriteRule ^/?blog/15$ /blogpost.php?id=15 [L]
RewriteRule ^/?blog/post-title$ /blogpost.php?id=15 [L]
如果是“15”:那么“帖子标题”可以是任何东西,那么就不是了

mod_rewrite无法知道帖子标题映射到哪个id,除非它可以访问实际映射(例如在数据库中)。您可以使用定义映射类型并将其指向可以与数据库通信的文件或脚本,但映射必须在服务器/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]

谢谢你,乔恩,你的回答真的很有用:)