我在旧的.htaccess文件中有这段代码
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+index\.php\?page=([a-z0-9]+) [NC]
RewriteRule ^ %1/%2/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z0-9]+)/?$ /index.php?page=$1 [L,NC]
我最近升级到nginx,我在配置中使用了以下代码,而不是Apache重写规则。
rewrite ^/(.*)$ /index.php?page=$1$args? last;
这也可以,但是当我尝试在/Style/Main.css中加载样式表时,它会尝试将文件作为get请求加载。我怎么能解决这个问题,所以它不会这样做?
答案 0 :(得分:0)
在将其传递给重写之前,您需要try_files
来检查所请求的网址(在您的情况下,它将是css,js等)是否存在。尝试类似:
location / {
try_files $uri $uri/ @rewrite;
}
location @rewrite {
rewrite ^/(.*)$ /index.php?page=$1$args? last;
}