我正在尝试使用框架DooPHP清除NGINX中的url。
这=> – http://example.com/index.php/something/more/要这样=> – http://example.com/something/more/
我想从url中删除(干净的url)“index.php”,如果有人试图进入第一种forms。 像永久redirect一样。
如何在NGINX上做这个configuration?
谢谢。
[更新:实际的nginxconfiguration]
server { listen 80; server_name vip.example.com; rewrite ^/(.*) https://vip.example.com/$1 permanent; } server { listen 443; server_name vip.example.com; error_page 404 /vip.example.com/404.html; error_page 403 /vip.example.com/403.html; error_page 401 /vip.example.com/401.html; location /vip.example.com { root /sites/errors; } ssl on; ssl_certificate /etc/nginx/config/server.csr; ssl_certificate_key /etc/nginx/config/server.sky; if (!-e $request_filename){ rewrite /.* /index.php; } location / { auth_basic "example Team Access"; auth_basic_user_file config/htpasswd; root /sites/vip.example.com; index index.php; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /sites/vip.example.com$fastcgi_script_name; include fastcgi_params; fastcgi_param PATH_INFO $fastcgi_script_name; } }
这是我正在寻找的线,我做了我自己。 我可能有一些错误。
你怎么看?
server { .... rewrite ^/index.php/(.*) /$1 permanent; .... }
我已经在CodeIgniter 1.7和2.0上试了一下,我改变了
config.php $config['uri_protocol'] = "REQUEST_URI";
我添加try_files $uri $uri/ /index.php?r=$request_uri;
在nginx.conf,并工作
location / { auth_basic "example Team Access"; auth_basic_user_file config/htpasswd; root /sites/vip.example.com; index index.php; try_files $uri $uri/ /index.php?r=$request_uri; }
也许它在DooPHP上是一样的
将此添加到nginx服务器configuration部分。
location / { if (!-e $request_filename) { rewrite ^/([^?]*)(?:\?(.*))? /index.php?title=$1&$2 last; } if ($uri ~* "\.(ico|css|js|gif|jpe?g|png)(\?[0-9]+)?$") { expires max; break; } }
如果你只有php文件,你可以使用:
location / { rewrite ^(.*)$ /index.php } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000 fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }