使用Apache Rewrite忽略尾部斜杠

时间:2011-10-01 18:09:30

标签: apache mod-rewrite clean-urls

我正在使用mod_rewrite进行重定向:

RewriteRule (work)/?$ $1.php [L]

这会将以/work/work/结尾的任何网址发送至work.php

问题是,当包含尾部斜杠时,它会将其视为目录,而不是它实际存在的文件。当然,这会破坏文件中的所有相对路径。

我不介意在URL中使用斜杠,但有没有办法使用Apache 忽略尾部斜杠,并将URL视为文件,就像没有斜线?

1 个答案:

答案 0 :(得分:11)

由于您不希望网址看起来像www.domain.com/work/,所以您可以执行以下操作:

  RewriteEngine On
  RewriteRule ^work/$ http://www.domain.com/work%{REQUEST_URI} [R=301,L,NC]
  RewriteRule (work)$ $1.php [L,QSA,NC]

这会将/work/重定向到/work,将/work/?page=main重定向到/work?page=main