0

我正在使用以下内容.php在 URL 中添加对文件扩展名的支持:

RewriteEngine On
RewriteRule ^/?([a-z]+)$ $1.php [L]

例如,如果 URL 是,www.doamin.com/create那么它将调用create.php.

如果我.htaccess将文件粘贴到根文件夹并调用www.doamin.com/notes/create,我会收到错误消息。如果我.htaccess将文件粘贴到笔记文件夹中,它运行良好。

为什么根目录不支持该文件?

4

1 回答 1

0

尝试在您的RewriteRule:

RewriteCond %{REQUEST_URI} !\.php$

当您的规则位于文档根目录中时,它会无限循环:

  1. URI = 注释/创建
  2. 应用规则,URI = notes/create.php
  3. 应用规则,URI = notes/create.php.php
  4. 应用规则,URI = notes/create.php.php.php

您需要添加一个条件,以便如果 URI 以.php不应用该规则结尾。您可以添加的另一个条件是检查 URI 是否不存在(例如,如果 create.php 文件不存在)。因此,您还应该在规则之前添加这些:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
于 2012-06-18T20:10:30.670 回答