.htaccess 重写规则不起作用
我正在尝试改变htacces中的一些东西,我正在尝试这样做:.htaccess 重写规则不起作用,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我正在尝试改变htacces中的一些东西,我正在尝试这样做: RewriteCond %{REQUEST_URI} ^/(.*).xml$ RewriteCond %{HTTP_HOST} ^([^.]{2})\. [OR] [NC] RewriteCond %{HTTP_HOST} !^$ [NC] RewriteRule ^(.+)$ sitios/es/$1 [L] 如果我将RewriteRule更改为类似的内容,则效果很好: RewriteRule ^(.+)$ sitios/es/s
RewriteCond %{REQUEST_URI} ^/(.*).xml$
RewriteCond %{HTTP_HOST} ^([^.]{2})\. [OR] [NC]
RewriteCond %{HTTP_HOST} !^$ [NC]
RewriteRule ^(.+)$ sitios/es/$1 [L]
如果我将RewriteRule更改为类似的内容,则效果很好:
RewriteRule ^(.+)$ sitios/es/something [L]
我想问题出在1美元,因为我收到了内部错误
我可能做错了什么?看起来您的规则创建了一个无限循环 例如,如果我访问
ab.example.com/anywhere.xml
:
是匹配%{REQUEST_URI}
的^/(.*).xml$
,括号将匹配/anything.xml
anything
是%{HTTP\u HOST}
,它匹配ab.example.com
,括号将匹配^([^.]{2})\
ab
的第二个条件也匹配,因为%{HTTP_HOST}
不是空字符串(ab.example.com
匹配空字符串)^$
- 最后,RewriteRule将请求URL路径(即
)与anything.xml
匹配,这是正确的,括号(稍后使用^(.+)$
)包含$1
anything.xml
ab.example.com/anything.xml
的请求在内部被重定向(因为您没有R
标志)到ab.example.com/sitios/en/anything.xml
,这也匹配了()上述所有规则,因此它将在内部被重定向到ab.example.com/sitios/en/sitios/en/anythios.xml
,哪个也匹配等等等等