他们是我可以将 .htaccess 文件配置为只读特定文件的一种方式吗?只说 index.php 而不是其他的?
编辑:我知道 index.php 是将被读取的默认文件。我想要这样的东西:
如果用户输入 www.example.com 它默认读取 index.php。如果如果输入 www.example.com/index2.php 它应该读取 index2.php。
我想要的不是在任何地方显示 404 错误页面,无论 url 是什么。我只有两个文件应该被读取。
Zend Framework 提供了一个默认的 .htaccess,它将所有请求路由到 index.php,除非请求的文件确实存在:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
您可以使其更具限制性并将所有内容路由到 index.php:
RewriteEngine On
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
请记住,这将使对 CSS 文件的额外请求变得不可能。
[编辑]
看看 Drupal 提供的 .htaccess 也很不错。在那里,某些路径和文件类型也被阻止。Drupal 的 .htaccess 中的第一个指令是:
<FilesMatch "\.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)$|^(\..*|Entries.*|Repository|Root|Tag|Template)$">
Order allow,deny
</FilesMatch>
因此,如果您只想阻止对 php 文件和application
目录中所有内容的访问,您可能会这样做:
<FilesMatch "(\.php$|^application)">
Order allow,deny
</FilesMatch>
(未测试,因为我不是 htaccess 专家,代码只是我的头脑;如果需要更正,请有人在评论中发表评论或直接编辑我的代码)。
您并没有真正提供有关您真正想要做的事情的太多信息,如果您尝试仅对某些文件要求身份验证,那么您可以使用如下内容:
<Files "index.php">
require valid-user
</Files>
不幸的是,如果没有更多信息,我真的无法提出任何其他建议。