.htaccess htaccess 404问题

.htaccess htaccess 404问题,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我正在与CMS合作,直到今天一切都很好 但是我发现mod rewirte只有在网站位于根目录下时才起作用。如果我把整个CMS放进一个文件夹,我会得到一个404 请帮忙 RewriteEngine on Options +FollowSymLinks RewriteRule ^([^/\.]+)/?$ /index.php?1=$1 [L] RewriteRule ^([^/\.]+)/([^/\.]+)/?$ /index.php?1=$1&2=$2 [L] RewriteRule ^

我正在与CMS合作,直到今天一切都很好

但是我发现mod rewirte只有在网站位于根目录下时才起作用。如果我把整个CMS放进一个文件夹,我会得到一个404

请帮忙

RewriteEngine on
Options +FollowSymLinks

RewriteRule ^([^/\.]+)/?$ /index.php?1=$1 [L]
RewriteRule ^([^/\.]+)/([^/\.]+)/?$ /index.php?1=$1&2=$2 [L]
RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ /index.php?1=$1&2=$2&3=$3 [L]
RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ /index.php?1=$1&2=$2&3=$3&4=$4 [L]
RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ /index.php?1=$1&2=$2&3=$3&4=$4&5=$5 [L]
RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ /index.php?1=$1&2=$2&3=$3&4=$4&5=$5&6=$6 [L]
RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/([^/\.]+)/([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ /index.php?1=$1&2=$2&3=$3&4=$4&5=$5&6=$6&7=$7 [L]

然后,对于所有规则,您需要像这样将子文件夹添加到重写规则中

RewriteRule ^([^/\.]+)/?$ /subfolder/index.php?1=$1 [L]

通过配置,apache将在根目录中搜索index.php文件

您的脚本正在提取斜杠之间的数据,如:

/test1/test2/ transfers into /index.php?1=test1&2=test2
但自从您开始使用文件夹后,它的工作原理如下:

/folder/test1/test2/ transfers into /index.php?1=folder&2=test1&3=test2
因此,文件夹名称破坏了您的结构,您需要用文件夹名称或表达式修复每一行,如下所示:

RewriteRule ^[^/\.]+/([^/\.]+)/?$ /folder/index.php?1=$1 [L]
所以,您需要修复每一行上的正则表达式和新路径,只需将文件夹替换为您的文件夹名称,并在开始时添加[^/\.]+/

如果这不起作用,您可能只需要修复正则表达式,而不需要将/folder添加到行的第二部分