.htaccess rewrite其中url basename与目录名相同

时间:2014-06-24 00:21:47

标签: regex apache .htaccess mod-rewrite

我的文件结构中有一个名为" finder"的目录。我想重写一个以finder作为基名的url。例如,取www.mysite.com/finder

以下是重试规则:

RewriteRule ^finder/?$ /finder/directory/listings.php [NC,L]

我没有成功重写,而是获得了404 Page Not Not Message消息。对于它的价值,我有一个重写规则,即使用此规则获取此网址www.mysite.com/finder/california ...

RewriteRule ^finder/([a-zA-Z0-9+\-]*)/?$ /finder/directory/listings.php?s=$1 [NC,L]

..它正在工作。

我已经尝试DirectorySlash Off到我的.htaccess,但那也没有用。关于我失踪的任何线索?感谢。

1 个答案:

答案 0 :(得分:1)

我看到两个潜在的麻烦领域:

  1. 包含此规则的htaccess文件不能位于finder文件夹中。确保它位于DOCUMENT_ROOT目录。
  2. 重写中的正斜杠可能存在问题。
  3. 在Apache 2.2和2.4上测试:

    • RewriteRule ^finder/?$ directory/listings.php [NC,L]
    • 浏览器中的网址:http://www.example.com/finder
    • 重定向至:http://www.example.com/directory/listings.php

    让我知道这是否有效。