Apache mod_重写到目录

Apache mod_重写到目录,apache,mod-rewrite,url-rewriting,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] Re

我试图创建一个重写规则到一个不同的目录,但不幸的是它不工作

我当前的重写将所有内容发送回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]
如果我更改admin的重写规则以使用其他目录

RewriteRule ^\/?admin\/?(.*)$ /var/www/html/website.com/admin/admin.php?url=$1 [QSA,L]
它破坏了网站。有什么想法吗


谢谢。

实际上很简单,您使用的是系统路径,而需要web路径

请尝试以下行:

RewriteRule ^\/?admin\/?(.*)$ /subfolder/admin.php?url=$1 [QSA,L]
试试这些规则:

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

我的目录位于web路径下面。web路径是/var/www/html/website.com/web/,而我试图访问的路径是/var/www/html/website.com/admin/web/嗯,你不能。唯一的方法是创建另一个可通过web访问的文件,并包括不可访问的文件。像这样[website.com/web/admin.php]:谢谢你的帮助。我只是做了一个指向该目录的符号链接,并在其中添加了一个mod_重写,这就成功了。