2016-12-04 80 views
1

我试图改写重写规则似乎并不奏效

/blog/2016-10-02-my-post 

/blog/post.php?s=2016-10-02-my-post 

在.htaccess中使用ModRewrite。我试过以下几种变化,但不断得到404的:

RewriteRule ^blog/([a-zA-Z0-9-/]+)$ /blog/post.php?s=$1 [L]s 

ModRewrite的工作,因为我有工作了一些非常简单的测试规则。我在做什么与上述错误?

+0

我编辑了你的文章,因为你正在将'/ blog/2016-10-02-my-post'改写成'/blog/post.php?s=2016-10-02-my 'post'而不是其他方式。 – cherouvim

回答

0

[L]s给出:RewriteRule: bad flag delimiters

另外,规则需要以^/开头。所以这个作品:

RewriteRule ^/blog/([a-zA-Z0-9-/]+)$ /blog/post.php?s=$1 [L] 
+0

这条规则将**从不匹配,因为它以'^ /'开头。在RewriteRule中测试的URL没有带斜杠。除标志外,OP的重写是正确的。 – Gerrit0

+0

你说得对。我错过了'.htaccess'部分(我在'VirtualHost'中测试过)。 – cherouvim