我正在使用这个.htaccess
将 URL 后面的所有内容传递给$param
,因此
example.com/news/id
转到 PHP 作为$_GET['param']='news/id'
。但 Nginx 总是将我抛到 404 页面。
我的.htaccess
:
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule (.*) index.php?param=$1
我在 Nginx 中尝试过default.conf
:
server {
listen 80;
listen [::]:80;
server_name domain.com;
root /var/www/html;
location / {
if (!-f $uri){
set $rule_0 1$rule_0;
}
if (!-d $uri){
set $rule_0 2$rule_0;
}
if ($rule_0 = "21"){
rewrite ^(.*) index.php?param=$1;
}
}
}
答案1
答案2
我可以使用以下规则修复它:
server{
try_files $uri $uri/ @rewrite;
location @rewrite {
rewrite ^/(.*)$ /index.php?_url=$1;
}
}
如果您的 location / { } 里面没有任何指令,请将其删除。