2016-12-04 74 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