您好,欢迎访问一九零五行业门户网

thinkPhp在nginx下伪静态不能使用了

.htaccess里面
rewriteengine onrewritecond %{request_filename} !-drewritecond %{request_filename} !-frewriterule ^(.*)$ index.php?s=$1 [qsa,pt,l]
能访问首页,但是内页的页面都没办法访问了,用
index.php?a=guest是能访问的
/guest就不行了,求帮忙,'url_model' => 2
回复讨论(解决方案) 因为nginx和apache的伪静态的写法不一样呢。 nginx是不支持.hta文件的呢
因为nginx和apache的伪静态的写法不一样呢。 nginx是不支持.hta文件的呢
那应该怎么配置呢?网上我看了好多方法都只说配nginx.conf,照着网站那种改过也不行
server { listen 80; server_name www.phpno.com; root /home/www/www_phpno_com/admin_wwwroot; access_log off; error_page 404 /404.html; location /404.html { root /home/www/www_phpno_com/admin_wwwroot; } location /{ index index.html index.htm index.php; if (-e $request_filename) { break; } if (!-e $request_filename) { rewrite ^/(.*)$ /index.php/$1 last; break; } } location ~ .+\.php($|/) { root /home/www/www_phpno_com/admin_wwwroot; fastcgi_index index.php; fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_param script_filename $document_root$fastcgi_script_name; fastcgi_param path_info $fastcgi_path_info; fastcgi_param path_translated $document_root$fastcgi_path_info; fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param script_filename /home/www/www_phpno_com/admin_wwwroot/$fastcgi_script_name; # fastcgi_param script_filename /usr/local/nginx/html/$fastcgi_script_name; include fastcgi_params; } }
自己对比改一下
照着弄了一下也不行呢
location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(.*)$; include fastcgi_params; fastcgi_param script_filename $document_root$fastcgi_script_name; fastcgi_param server_name $http_host; fastcgi_param path_info $fastcgi_path_info; fastcgi_param path_translated $document_root$fastcgi_path_info; fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_param script_name $fastcgi_script_name; root /data/php/www; }
解决了,如果你的thinkphp安装在二级目录,nginx的伪静态方法设置如下,其中youdomain是所在的目录名称。
location /youdomain/ { if (!-e $request_filename){ rewrite ^/youdomain/(.*)$ /youdomain/index.php?s=$1 last; } }
其它类似信息

推荐信息