【问题标题】:Help with simple RewriteRule problem帮助解决简单的 RewriteRule 问题
【发布时间】:2010-12-13 01:08:46
【问题描述】:

我正在 apache 上的 php 中创建一个非常小的站点,只有 5 个页面。我已经在顶层目录中创建了五个 php 文件,index.php、random.php 等。我想隐藏 .php 扩展名,所以我将以下内容放入我的 .htaccess 中:

RewriteRule ^random/?$ random.php

如果我访问 www.example.com/random 我会得到我需要的页面,但是如果我访问 www.example.com/random/ (最后是斜线),css 和链接都在一个目录下,即服务器认为我在 /random/index.php,而不是 /random.php。

我是 RewriteRule 的菜鸟,提前致谢!

【问题讨论】:

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


    【解决方案1】:

    对于实际执行 HTTP 重定向的尾部斜杠,您应该有一个单独的规则。例如:

    RewriteRule ^random/$ /random [R=301,L]
    RewriteRule ^random$ random.php
    

    相对 URL 由浏览器处理,因此使用斜杠后浏览器会感到困惑。

    大多数 HTTP 服务器实际上对目录名称执行这种重定向的反向操作。也就是说,如果你去http://example.com/foo/bar并且bar是一个目录,你会被重定向到/foo/bar/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-14
      • 1970-01-01
      相关资源
      最近更新 更多