thinkPhp在nginx下伪静态不能使用了
程序员文章站
2022-06-11 16:25:56
...
.htaccess里面
能访问首页,但是内页的页面都没办法访问了,用
index.php?a=guest是能访问的
/guest就不行了,求帮忙,'URL_MODEL' => 2
那应该怎么配置呢?网上我看了好多方法都只说配nginx.conf,照着网站那种改过也不行
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; } }