【问题标题】:mod_rewrite multiple directories to a php filemod_rewrite 多个目录到一个 php 文件
【发布时间】:2009-03-06 01:08:33
【问题描述】:
RewriteEngine on
RewriteRule ^/(dir1|dir2|dir3)/(.*)$ /targetfile.php [R,L]

http://www.somesite.com/dir1 -> http://www.somesite.com/targetfile.php
http://www.somesite.com/dir2 -> http://www.somesite.com/targetfile.php
http://www.somesite.com/dir3 -> http://www.somesite.com/targetfile.php

根据我在网上看到的情况,这应该可以。不幸的是,它不会。有什么见解吗?

【问题讨论】:

    标签: php .htaccess mod-rewrite url-rewriting


    【解决方案1】:

    如果您想在 .htaccess 文件中使用它,请从模式中删除前导斜杠。为了只匹配完整的路径段,你必须稍微改变一下表达式。

    所以试试这个:

    RewriteEngine on
    RewriteRule ^(dir1|dir2|dir3)(/|$) targetfile.php [R,L]
    

    【讨论】:

      【解决方案2】:

      我不认为正斜杠是必要的,除非您想将其限制为在“dir1”之后要求尾部斜杠。

      尝试: RewriteRule ^(dir1|dir2|dir3)$ targetfile.php [QSA,L]

      【讨论】:

        【解决方案3】:

        我认为问题在于正则表达式要求在目录名称后使用斜杠(例如 /dir1/),但在示例中省略了最后一个斜杠(http://www.somesite.com/dir1 没有尾部斜杠)。

        我想你可以试试

        RewriteRule ^/(dir[1-3]) /targetfile.php [R,L]
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-03-03
          • 2020-02-21
          • 1970-01-01
          • 2012-05-18
          • 2014-02-05
          • 2015-10-15
          • 1970-01-01
          相关资源
          最近更新 更多