Проблема с правилом перенаправления Htaccess - PullRequest
0 голосов
/ 31 марта 2020

, поэтому у меня проблема с файлом htaccess. Поэтому, если я пытаюсь открыть изображение, которое не существует, оно перенаправляет меня на страницу 404, и это нормально. но если я пытаюсь открыть несуществующую страницу php, вместо перенаправления на страницу 404 появляется сообщение «файл не найден». Любая идея, почему это? Ниже приведен код, который я использовал в файле htaccess

ErrorDocument 404 https://www.mywebsite.co.uk/404

Ниже приведен полный файл htaccess. Это было создано предыдущим разработчиком. Я не знаком с кодировкой htaccess, поэтому решил опубликовать вопрос здесь.

order allow,deny
allow from all
RewriteEngine on

RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://www.mywebsite.co.uk/$1 [R,L]

RewriteCond %{HTTP_HOST} ^mywebsite.co.uk [NC]
RewriteRule ^(.*)$ https://www.mywebsite.co.uk/$1 [L,R=301]

RewriteRule ^index\.php$ / [R=301,L]
RewriteRule ^(.*)/index\.php$ /$1/ [R=301,L]

ErrorDocument 404 https://www.mywebsite.co.uk/404
RewriteCond %{HTTP_REFERER} !^https://www.mywebsite.co.uk/.*$      [NC]
RewriteCond %{HTTP_REFERER} !^https://www.mywebsite.co.uk$      [NC]
# RewriteRule .*\.(jpg|jpeg|gif|png|bmp)$ - [F,NC]


RewriteRule ^job/([^/\.]+)/?$ ./job-display.php?job_id=$1	[L]
RewriteRule ^job/([^/\.]+)/([^/\.]+)/?$ ./job-display.php?job_id=$1	[L]
RewriteRule ^jobs/([^/\.]+)/?$ ./job-display.php?jobg8_id=$1	[L]
RewriteRule ^jobs/([^/\.]+)/([^/\.]+)/?$ ./job-display.php?jobg8_id=$1	[L]

RewriteRule ^location/([^/\.]+)/?(.*)$ /search_result.php?jobtitle=&joblocation=$1	[L]

RewriteRule ^company/([^/\.]+)/?$ ./search-result.php?adv_name=$1&jobtitle=$2&joblocation=$3	[L]
RewriteRule ^company/([^/\.]+)/([^/\.]+)/?$ ./search-result.php?adv_name=$1&jobtitle=$2&joblocation=$3	[L]

RewriteRule ^organisation/([^/\.]+)/?(.*)$ ./search-result.php?organisation=$1 [L]

RewriteRule ^featured/([^/\.]+)/?$ ./search-result.php?user_id=$1	[L]
RewriteRule ^featured/([^/\.]+)/([^/\.]+)/?$ ./search-result.php?user_id=$1	[L]

RewriteRule ^jobs/apply/([^/\.]+)/?$ ./apply-job.php?job_id=$1	[L]
RewriteRule ^jobs/apply/([^/\.]+)/([^/\.]+)/?$ ./apply-job.php?job_id=$1 [L]

AddType x-httpd-php54 .php
# Added automatically by Gridhost panel Tuesday 23rd of May 2017 08:54:14 PM
Options -Indexes


RewriteRule ^(employer-admin|admin)($|/) - [L]

# Hide php extension of remaining files
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC]




# BEGIN cPanel-generated php ini directives, do not edit
# Manual editing of this file may result in unexpected behavior.
# To make changes to this file, use the cPanel MultiPHP INI Editor (Home >> Software >> MultiPHP INI Editor)
# For more information, read our documentation (https://go.cpanel.net/EA4ModifyINI)
<IfModule php5_module>
   php_flag asp_tags Off
   php_flag display_errors Off
   php_value max_execution_time 900
   php_value max_input_time 6000
   php_value max_input_vars 1000
   php_value memory_limit 1024M
   php_value post_max_size 8M
   php_value session.gc_maxlifetime 1440
   php_value session.save_path "/var/cpanel/php/sessions/ea-php54"
   php_value upload_max_filesize 200M
   php_flag zlib.output_compression On
</IfModule>
<IfModule lsapi_module>
   php_flag asp_tags Off
   php_flag display_errors Off
   php_value max_execution_time 900
   php_value max_input_time 6000
   php_value max_input_vars 1000
   php_value memory_limit 1024M
   php_value post_max_size 8M
   php_value session.gc_maxlifetime 1440
   php_value session.save_path "/var/cpanel/php/sessions/ea-php54"
   php_value upload_max_filesize 200M
   php_flag zlib.output_compression On
</IfModule>
# END cPanel-generated php ini directives, do not edit

# php -- BEGIN cPanel-generated handler, do not edit
# Set the “ea-php73” package as the default “PHP” programming language.
<IfModule mime_module>
  AddHandler application/x-httpd-ea-php73 .php .php7 .phtml
</IfModule>
# php -- END cPanel-generated handler, do not edit

1 Ответ

0 голосов
/ 01 апреля 2020

Я исправил проблему. Правило скрывать. php расширение было большим. Он говорит! -F, но предполагается, что это -f, а затем в следующую строку необходимо добавить инструкцию ErrorDocument. Код такой:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^([^\.]+)$ $1.php [NC]

ErrorDocument 404 https://www.mywebsite.co.uk/404

Я понятия не имею, как это работает в теории. Это то, что я нашел на другом сайте и попытался использовать это решение. Который сработал:)

Спасибо всем за отзывы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...