.htaccess htaccess重定向(循环)问题

.htaccess htaccess重定向(循环)问题,.htaccess,.htaccess,我为此工作了两个小时,但最终还是放弃了。 我有两个条件: 1.如果用户请求一个php文件,则重定向cms/index.php?请求=$1 2.如果用户请求与php不同的内容(png、css、jpg),请重定向cms/WEBITE/$1 第一条规则有效,但我无法应用第二条规则。当用户请求/cms/style.css时,Apache重定向cms/website/style.css,然后再次重定向cms/website/website/style.css,并循环 我的htaccess文件如下所示: O

我为此工作了两个小时,但最终还是放弃了。

我有两个条件:

1.如果用户请求一个php文件,则重定向cms/index.php?请求=$1
2.如果用户请求与php不同的内容(png、css、jpg),请重定向cms/WEBITE/$1

第一条规则有效,但我无法应用第二条规则。当用户请求/cms/style.css时,Apache重定向cms/website/style.css,然后再次重定向cms/website/website/style.css,并循环

我的htaccess文件如下所示:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*\.php) /cms/index.php?request=$1 [L]
RewriteRule (.*\.!(php)) /cms/website/$1 [R,L]
注意:我不确定最后一个正则表达式是否正确。它返回500。错误\u日志输出为

"[Tue Aug 16 16:26:11 2011] [error] [client 127.0.0.1] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace."

Apache日志有很多尝试和错误,所以很难确定,但第二条规则看起来是无限的——如果它匹配的话。重定向(
[R]
)后,所有规则将再次运行,因此
/cms/website/$1
将再次匹配规则,并再次转发到
/cms/website/cms/website/$1
等。@robin实际上说,如果我使用[R],它不能循环。但是,即使设置了这个选项,它也会循环。Apache日志有很多尝试和错误,所以很难确定,但是第二条规则看起来是无限的——如果它匹配的话。重定向(
[R]
)后,所有规则将再次运行,因此
/cms/website/$1
将再次匹配规则,并再次转发到
/cms/website/cms/website/$1
等。@robin实际上说,如果我使用[R],它不能循环。但是,即使设置此选项,它也会循环。谢谢!这是可行的,但我不明白问题出在哪里。你知道为什么[R,L]在我的旧htaccess中不起作用吗?@burak emre不,我的朋友在使用[L]标志时也有问题!谢谢这是可行的,但我不明白问题出在哪里。你知道为什么[R,L]在我的旧htaccess中不起作用吗?@burak emre不,我的朋友在使用[L]标志时也有问题!
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI}  !(.*)\.php$
RewriteRule (.*)\.(.*)$ /cms/website/$1 [R,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI}  (.*)\.php$
RewriteRule (.*)\.php /cms/index.php?request=$1 [L]