mod_rewrite到一个目录

时间:2010-01-17 00:37:10

标签: apache mod-rewrite url-rewriting

我正在尝试为不同的目录创建重写规则,但不幸的是它无法正常工作。

我的当前重写将所有内容发送回index.php文件,除非查询字符串中的第一个单词是admin。 'admin'的重写规则是admin.php,但我实际上希望它转到/var/www/html/website.com/admin/admin.php(而不是同一目录中的文件)。

这是当前的.htaccess文件。

RewriteEngine On
RewriteRule ^(.*\/?).*(css|images|js/)+.*$ - [L]
RewriteRule ^\/?admin\/?(.*)$ admin.php?url=$1 [QSA,L]

RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

如果我更改管理员的重写规则以使用其他目录..

RewriteRule ^\/?admin\/?(.*)$ /var/www/html/website.com/admin/admin.php?url=$1 [QSA,L]

它破坏了网站。有什么想法吗?

感谢。

2 个答案:

答案 0 :(得分:0)

实际上非常简单,您需要使用系统路径,而需要使用Web路径。

请尝试以下行:

RewriteRule ^\/?admin\/?(.*)$ /subfolder/admin.php?url=$1 [QSA,L]

答案 1 :(得分:0)

请尝试以下规则:

RewriteRule ^admin($|/(.*)) admin/admin.php?url=$2 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* index.php?url=$0 [QSA,L]