[英].htaccess to nginx.conf Rewrite rules
我正在从.htaccess切换到nginx.conf,但在将这些行转换为nginx时遇到了麻烦:
RewriteBase /
RewriteCond $1 !^(index\.php|assets|uploads|fav.ico)
RewriteRule ^(.*)$ index.php/$1 [L]
我尝试了这个:
if ($1 !~ "^(index\.php|assets|uploads|fav.ico)"){
set $rule_0 1$rule_0;
}
if ($rule_0 = "1"){
rewrite ^/(.*)$ /index.php/$1 last;
}
和这个:
location /$ {
index index.php;
# Removes index.php from URLs
rewrite_log on;
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php/$1 last;
}
}
但无济于事:(。我在做什么错?
谢谢。
尝试翻译这段代码。
RewriteBase /
RewriteRule ^(index\.php|assets|uploads|fav.ico) - [L]
RewriteRule ^(.*)$ index.php/$1 [L]
您遇到的问题是因为apache首先在RewriteCond之前执行RewriteRule。 您的nginx代码是按顺序运行的,因此当您读出它时,尚未设置$ 1。
我不了解nginx,但我认为如果您翻译上述内容,可能会得到以下结果:
rewrite ^/(index\.php|assets|uploads|fav.ico) - last
rewrite ^/(.*)$ /index.php/$1 last;
要不然
rewrite ^/(index\.php|assets|uploads|fav.ico).*$ $0 last
rewrite ^/(.*)$ /index.php/$1 last;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.