Убрать расширение .php в nginx

461
01 июня 2017, 10:38

Привет всем! Частая проблема, прочитал много по этому поводу но так нифига и не понял.

У меня все ссылки на сайте следующего типа: contactinf вместо contactinf.php и так для всех файлов и файлов в субдиректориях. Достигнуто с помощью PHP + .htaccess кода:

PHP:

if(stristr($_SERVER['REQUEST_URI'], ".php")){
   $currentPage = $_SERVER['PHP_SELF'];
   $shortCut = str_replace(".php", "", $currentPage);
   header("Location:".$shortCut);
}

.htaccess:

Options +MultiViews

В nginx такая хрень не работает, и все мои ссылки перестали работать из-за того, что я не указал .php в конце ссылки. Если надо, то прикреплю полный конфиг nginx.conf файла:

#load_module "modules/ngx_http_image_filter_module.so"; 
#load_module "modules/ngx_http_perl_module.so"; 
#load_module "modules/ngx_http_xslt_filter_module.so"; 
#load_module "modules/ngx_mail_module.so"; 
#load_module "modules/ngx_stream_module.so"; 
 
user                         root admin; 
worker_processes             4; 
 
events { 
    worker_connections       27000; 
} 
 
http { 
    include       		    mime.types; 
    default_type             text/html; 
	charset                  utf-8; 
	error_page 500           http://localhost/errors/undefined; 
    error_page 404           http://localhost/errors/undefined; 
    error_page 403           http://localhost/errors/undefined; 
	gzip                     on; 
	gzip_types               text/css text/x-component application/x-javascript application/javascript text/javascript text/x-js text/richtext image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon image/png image/jpeg; 
     
    sendfile                 on; 
 
	server { 
		listen               80 default_server; 
 
		# MAMP DOCUMENT_ROOT !! Don't remove this line !! 
		root                 "/Users/eugen/Documents/HTML,CSS,PHP, JavaScript,XML lessons/ER website/en/"; 
 
		access_log           /Applications/MAMP/logs/nginx_access.log; 
		error_log            /Applications/MAMP/logs/nginx_error.log; 
 
		location / { 
               index index.html index.htm index.php; 
 
 
             #Deny access for commom bad bots spiders and robots 
			 
			if (!-e $request_filename){ 
                return 403;} 
			if ($query_string ~ "GLOBALS(=|\[|\%[0-9A-Z]{0,2})"){ 
                 return 403;} 
            if ($query_string ~ "FILES(=|\[|\%[0-9A-Z]{0,2})"){ 
              return 403;} 
            if ($query_string ~ "_REQUEST(=|\[|\%[0-9A-Z]{0,2})"){ 
              return 403;} 
			if ($http_user_agent ~* "^BlackWidow"){ 
              return 403;} 
			if ($http_user_agent ~* "^Bot\ mailto:craftbot@yahoo.com"){ 
              return 403;} 
			if ($http_user_agent ~* "^ChinaClaw"){ 
              return 403;} 
			if ($http_user_agent ~* "^Custo"){ 
              return 403;} 
			if ($http_user_agent ~* "^DISCo"){ 
              return 403;} 
			if ($http_user_agent ~* "^Download\ Demon"){ 
              return 403;} 
			if ($http_user_agent ~* "^eCatch"){ 
              return 403;} 
			if ($http_user_agent ~* "^EirGrabber"){ 
              return 403;} 
			if ($http_user_agent ~* "^EmailSiphon"){ 
              return 403;} 
			if ($http_user_agent ~* "^EmailWolf"){ 
              return 403;} 
			if ($http_user_agent ~* "^Express\ WebPictures"){ 
              return 403;} 
			if ($http_user_agent ~* "^ExtractorPro"){ 
              return 403;} 
			if ($http_user_agent ~* "^EyeNetIE"){ 
              return 403;} 
			if ($http_user_agent ~* "^FlashGet"){ 
              return 403;} 
			if ($http_user_agent ~* "^GetRight"){ 
              return 403;} 
			if ($http_user_agent ~* "^GetWeb!"){ 
              return 403;} 
			if ($http_user_agent ~* "^Go!Zilla"){ 
              return 403;} 
			if ($http_user_agent ~* "^Go-Ahead-Got-It"){ 
              return 403;} 
			if ($http_user_agent ~* "^GrabNet"){ 
              return 403;} 
			if ($http_user_agent ~* "^Grafula"){ 
              return 403;} 
			if ($http_user_agent ~* "^HMView"){ 
              return 403;} 
			if ($http_user_agent ~* "HTTrack"){ 
              return 403;} 
			if ($http_user_agent ~* "^Image\ Stripper"){ 
              return 403;} 
			if ($http_user_agent ~* "^Image\ Sucker"){ 
              return 403;} 
			if ($http_user_agent ~* "Indy\ Library"){ 
              return 403;} 
			if ($http_user_agent ~* "^InterGET"){ 
              return 403;} 
			if ($http_user_agent ~* "^Internet\ Ninja"){ 
              return 403;} 
			if ($http_user_agent ~* "^JetCar"){ 
              return 403;} 
			if ($http_user_agent ~* "^JOC\ Web\ Spider"){ 
              return 403;} 
			if ($http_user_agent ~* "^larbin"){ 
              return 403;} 
			if ($http_user_agent ~* "^LeechFTP"){ 
              return 403;} 
			if ($http_user_agent ~* "^Mass\ Downloader"){ 
              return 403;} 
			if ($http_user_agent ~* "^MIDown\ tool"){ 
              return 403;} 
			if ($http_user_agent ~* "^Mister\ PiX"){ 
              return 403;} 
			if ($http_user_agent ~* "^Navroad"){ 
              return 403;} 
			if ($http_user_agent ~* "^NearSite"){ 
              return 403;} 
			if ($http_user_agent ~* "^NetAnts"){ 
              return 403;} 
			if ($http_user_agent ~* "^NetSpider"){ 
              return 403;} 
			if ($http_user_agent ~* "^Net\ Vampire"){ 
              return 403;} 
			if ($http_user_agent ~* "^NetZIP"){ 
              return 403;} 
			if ($http_user_agent ~* "^Octopus"){ 
              return 403;} 
			if ($http_user_agent ~* "^Offline\ Explorer"){ 
              return 403;} 
			if ($http_user_agent ~* "^Offline\ Navigator"){ 
              return 403;} 
			if ($http_user_agent ~* "^PageGrabber"){ 
              return 403;} 
			if ($http_user_agent ~* "^Papa\ Foto"){ 
              return 403;} 
			if ($http_user_agent ~* "^pavuk"){ 
              return 403;} 
			if ($http_user_agent ~* "^pcBrowser"){ 
              return 403;} 
			if ($http_user_agent ~* "^RealDownload"){ 
              return 403;} 
			if ($http_user_agent ~* "^ReGet"){ 
              return 403;} 
			if ($http_user_agent ~* "^SiteSnagger"){ 
              return 403;} 
			if ($http_user_agent ~* "^SmartDownload"){ 
              return 403;} 
			if ($http_user_agent ~* "^SuperBot"){ 
              return 403;} 
			if ($http_user_agent ~* "^SuperHTTP"){ 
              return 403;} 
			if ($http_user_agent ~* "^Surfbot"){ 
              return 403;} 
			if ($http_user_agent ~* "^tAkeOut"){ 
              return 403;} 
			if ($http_user_agent ~* "^Teleport\ Pro"){ 
              return 403;} 
			if ($http_user_agent ~* "^VoidEYE"){ 
              return 403;} 
			if ($http_user_agent ~* "^Web\ Image\ Collector"){ 
              return 403;} 
			if ($http_user_agent ~* "^Web\ Sucker"){ 
              return 403;} 
			if ($http_user_agent ~* "^WebAuto"){ 
              return 403;} 
			if ($http_user_agent ~* "^WebCopier"){ 
              return 403;} 
			if ($http_user_agent ~* "^WebFetch"){ 
              return 403;} 
			if ($http_user_agent ~* "^WebGo\ IS"){ 
              return 403;} 
			if ($http_user_agent ~* "^WebLeacher"){ 
              return 403;} 
			if ($http_user_agent ~* "^WebReaper"){ 
              return 403;} 
			if ($http_user_agent ~* "^WebSauger"){ 
              return 403;} 
			if ($http_user_agent ~* "^Website\ eXtractor"){ 
              return 403;} 
			if ($http_user_agent ~* "^Website\ Quester"){ 
              return 403;} 
			if ($http_user_agent ~* "^WebStripper"){ 
              return 403;} 
			if ($http_user_agent ~* "^WebWhacker"){ 
              return 403;} 
			if ($http_user_agent ~* "^WebZIP"){ 
              return 403;} 
			if ($http_user_agent ~* "^Wget"){ 
              return 403;} 
			if ($http_user_agent ~* "^Widow"){ 
              return 403;} 
			if ($http_user_agent ~* "^WWWOFFLE"){ 
              return 403;} 
			if ($http_user_agent ~* "^Xaldon\ WebSpider"){ 
              return 403;} 
			if ($http_user_agent ~* "^Zeus"){ 
              return 403;}   
			   
			rewrite ^(/.*)\.php(\?.*)?$ $1$2 permanent; 
            rewrite ^/(.*)/$ /$1 permanent; 
            try_files $uri/index.php $uri.php $uri/ $uri =404;   
		} 
	 
		location ~* /MAMP[^-]*(.*)$ { 
			root             /Applications/MAMP/bin; 
			index            index.php; 
 
			location ~ \.php$ { 
				try_files        $uri =404; 
				fastcgi_pass     unix:/Applications/MAMP/Library/logs/fastcgi/nginxFastCGI.sock; 
				fastcgi_param    SCRIPT_FILENAME $document_root$fastcgi_script_name; 
				include          fastcgi_params; 
			} 
		} 
 
		location ~* /phpMyAdmin(.*)$ { 
			root             /Applications/MAMP/bin; 
			index            index.php; 
 
			location ~ \.php$ { 
				try_files        $uri =404; 
				fastcgi_pass     unix:/Applications/MAMP/Library/logs/fastcgi/nginxFastCGI.sock; 
				fastcgi_param    SCRIPT_FILENAME $document_root$fastcgi_script_name; 
				include          fastcgi_params; 
			} 
		} 
 
		location ~* /phpPgAdmin(.*)$ { 
			root             /Applications/MAMP/bin; 
			index            index.php; 
 
			location ~ \.php$ { 
				try_files        $uri =404; 
				fastcgi_pass     unix:/Applications/MAMP/Library/logs/fastcgi/nginxFastCGI.sock; 
				fastcgi_param    SCRIPT_FILENAME $document_root$fastcgi_script_name; 
				include          fastcgi_params; 
			} 
		} 
		 
		location ~* /phpLiteAdmin(.*)$ { 
			root             /Applications/MAMP/bin; 
			index            index.php; 
 
			location ~ \.php$ { 
				try_files        $uri =404; 
				fastcgi_pass     unix:/Applications/MAMP/Library/logs/fastcgi/nginxFastCGI.sock; 
				fastcgi_param    SCRIPT_FILENAME $document_root$fastcgi_script_name; 
				include          fastcgi_params; 
			} 
		} 
		 
		location ~* /SQLiteManager(.*)$ { 
			root             /Applications/MAMP/bin; 
			index            index.php; 
 
			location ~ \.php$ { 
				try_files        $uri =404; 
				fastcgi_pass     unix:/Applications/MAMP/Library/logs/fastcgi/nginxFastCGI.sock; 
				fastcgi_param    SCRIPT_FILENAME $document_root$fastcgi_script_name; 
				include          fastcgi_params; 
			} 
		} 
 
		location ~* /adminer(.*)$ { 
			root             /Applications/MAMP/bin; 
			index            adminer.php; 
 
			location ~ \.php$ { 
				try_files        $uri =404; 
				fastcgi_pass     unix:/Applications/MAMP/Library/logs/fastcgi/nginxFastCGI.sock; 
				fastcgi_param    SCRIPT_FILENAME $document_root$fastcgi_script_name; 
				include          fastcgi_params; 
			} 
		} 
		 
		    location ~ .(ini|phps|log|txt|rtf)$ { 
              deny all; 
              allow 192.168.0.101; 
              allow 192.168.0.100; 
              allow 192.168.0.102; 
              allow 93.75.31.82; 
              allow 127.0.0.1; 
         } 
		 
		location /icons { 
			alias /Applications/MAMP/Library/icons; 
			autoindex on; 
		} 
		 
		location /favicon.ico { 
			alias /Applications/MAMP/bin/favicon.ico; 
            # log_not_found off; 
            # access_log off; 
		} 
 
		location ~ \.php$ { 
			try_files        $uri =404; 
			fastcgi_pass     unix:/Applications/MAMP/Library/logs/fastcgi/nginxFastCGI.sock; 
			fastcgi_param    SCRIPT_FILENAME $document_root$fastcgi_script_name; 
			include          fastcgi_params; 
		} 
 
		location ~ /\. { 
			deny all; 
		} 
 
		# location ~* \.(gif|jpg|png|pdf)$ { 
        #	expires          30d; 
		# } 
 
   		# location = /robots.txt { 
        #	allow all; 
        #	log_not_found off; 
        #	access_log off; 
   		# } 
 
	    # location ~* \.(txt|log)$ { 
        #	allow 127.0.0.1; 
        #	deny all; 
   		# } 
   		 
   		# location ~ \..*/.*\.php$ { 
        #	              return 403; 
   		# } 
 
		location /nginx_status { 
			stub_status      on; 
			access_log       off; 
			allow            127.0.0.1; 
			deny			 all; 
		} 
	} 
 
    # HTTPS server 
    # 
    #server { 
    #    listen       443 ssl; 
    #    server_name  localhost; 
 
    #    ssl_certificate      cert.pem; 
    #    ssl_certificate_key  cert.key; 
 
    #    ssl_session_cache    shared:SSL:1m; 
    #    ssl_session_timeout  5m; 
 
	#	 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
    #    ssl_ciphers  HIGH:!aNULL:!MD5; 
    #    ssl_prefer_server_ciphers  on; 
 
    #    location / { 
    #        root   html; 
    #        index  index.html index.htm; 
    #    } 
    #} 
}

READ ALSO
Запрос на поиск по части текста

Запрос на поиск по части текста

ЗдравствуйтеДелаю выборку из базы данных mysql

295
vk api если ответ совпадает, если нет

vk api если ответ совпадает, если нет

Как сделать так, чтобы, если приходит ответ сервера от VK API {"response":1}, то выполнялся код который в ifЕсли это не так то else

199
Обьекто-ориентированный код на PHP

Обьекто-ориентированный код на PHP

Здравствуйте, я java разработчик и недавно пришлось сесть на бэкенд и писать на phpНо мне не нравится процедурный стиль кода

208
Промежуточное API

Промежуточное API

Есть API сайта, но API привязано к IP адресу клиентаА так как для сайта разрабатывает мобильное приложение (где у клиентов будут разные IP), то нужно...

225