更新!

更新!

我遇到了一个奇怪的问题,对此我感到很困惑。首先我要说的是,正则表达式不是我的强项。我需要社区的反馈才能开始这项工作。

假如我有以下 URL:

  http://example.com/2015-03-25/  

我想通过 PHP 文件运行它们。此规则与以下 mod_rewrite 配合使用效果很好:

 RewriteRule ^/?([0-9]){4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/(.*)$ show_page.php?page=$3 [NC,L]

但我想将文件夹移动到:

  http://example.com/my_pages/2015-03-25/

此规则无效:

 RewriteRule ^/my_pages/?([0-9]){4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/(.*)$ show_page.php?page=$3 [NC,L]

此规则也不起作用:

 RewriteRule ^my_pages/?([0-9]){4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/(.*)$ show_page.php?page=$3 [NC,L]

我这里遗漏了什么?非常感谢社区的帮助。

更新!

这是我修复该问题的方法:

RewriteRule ^my_pages\/([0-9]){4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/(.*)$ show_page.php?page=$3 [NC,L]

对阵

RewriteRule ^/my_pages/?([0-9]){4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/(.*)$ show_page.php?page=$3 [NC,L]

现在,奇怪的是,在 Apache 2.4 上,正确的语法实际上是。

RewriteRule ^my_pages/?([0-9]){4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/(.*)$ show_page.php?page=$3 [NC,L]  

答案1

更新!

这是我修复该问题的方法:

RewriteRule ^my_pages\/([0-9]){4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/(.*)$ show_page.php?page=$3 [NC,L]

对阵

RewriteRule ^/my_pages/?([0-9]){4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/(.*)$ show_page.php?page=$3 [NC,L]

现在,奇怪的是,在 Apache 2.4 上,正确的语法实际上是。

RewriteRule ^my_pages/?([0-9]){4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/(.*)$ show_page.php?page=$3 [NC,L]  

相关内容