首页 > 解决方案 > 通过 .htaccess 将所有 php 请求重定向到 index.php

问题描述

我遇到了一个小问题。预先,我对 .htaccess 没有任何经验。

我正在尝试实现漂亮的链接。所以我希望所有 PHP 内容都被定向到 index.php,它将处理所有内容显示等。在摆弄和谷歌搜索之后,我来到了这个设置:

# directs all content to index.php
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /hotel/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f [or]
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_FILENAME} !-d [or]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule . /hotel/index.php [L]
</IfModule>

“酒店”的存在是因为我正在运行 wampserver,它看起来很奇怪。

它符合我的预期,将所有内容重定向到 index.php。这就是问题所在,它正在重定向所有内容。我不希望 CSS、图像、js 等文件被触及。只有 PHP 文件。

因此,如果有人进入 /dir/foo/bar/,它会将其重定向到 index.php。
如果它要求说 /dir/foo/style.css,它会不理会它并为它服务。

PS我最初尝试了一些不同的方式。但是,我遇到了一个问题,如果我调用诸如“/dir/rooms/”之类的漂亮链接,并且有一个名为 dir/rooms.php 的文件,它将加载它。这不是我所期待的。

RewriteEngine On
RewriteBase /hotel/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /hotel/index.php [L]

标签: php.htaccess

解决方案


推荐阅读