删除'index.php?'与.htaccess

时间:2013-01-12 14:07:11

标签: .htaccess url-rewriting

我正在使用PHP 5.3.5开发Wamp并启用了htaccess extesnion。

我面临的问题是我需要这样的事情http://localhost/abc/aboutus

现在实际的网址就像这个http://localhost/abc/index.php?aboutus

我尝试了以下代码:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]

尝试使用它http://localhost/abc/aboutus,但它不起作用。但是,当我尝试http://localhost/abc/?aboutus时。

它工作正常,但实际上我想从URL中删除?。谁能告诉我哪里错了?

1 个答案:

答案 0 :(得分:0)

您必须在规则中考虑/abc/ URI基础。因此,如果htaccess文件位于文档根目录中,则规则必须如下所示:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^abc/(.*)$ /abc/index.php?/$1 [L]

但是如果规则位于 / abc / 文件夹中的的htaccess文件中,那么它们需要如下所示:

RewriteEngine On
RewriteBase /abc/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]