htaccess RewriteRule无法正常工作 - (404错误)来自服务器

时间:2014-09-08 13:40:26

标签: apache .htaccess mod-rewrite url-rewriting

我正在尝试从此处重写我的网址:

http://www.example.com/admin/index.php?id=title

为:

http://www.example.com/admin/title

我在我的htaccess中使用此代码:

RewriteEngine On
RewriteRule ^([^/]*)\.html$ /admin/index.php?id=$1 [L]

但是当我尝试重写URL时,我的服务器出现了404错误。我犯的错是什么? .htaccess位于名为admin的子文件夹中,重写规则应仅适用于该文件夹。

1 个答案:

答案 0 :(得分:2)

.htaccess应放在必须位于根文件夹中的文件夹admin内:

Options +FollowSymLinks -MultiViews

RewriteEngine On
RewriteBase /admin/

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)$ index.php?id=$1 [L]

这2个条件确保我们不会重定向现有文件或文件夹,并且规则告诉我们要提取不是/的任何内容并将其用作ID。

RewriteBase告诉我们您的父文件夹是admin,因此我们从那里开始工作。