конфликт перенаправления .htaccess с другим кодом в файле?

#.htaccess

#.htaccess

Вопрос:

Я пытаюсь изменить свой .htaccess файл, чтобы при https://www.metaalboutique.nl/Contactformulier использовании URL https://www.metaalboutique.nl/contact_form.php отображалась страница.

Есть ли в моем .htaccess файле какой-либо код, который противоречит этому, и это может быть причиной того, что это не работает?

 <Files .htaccess>
order allow,deny
deny from all
</Files>

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

ErrorDocument 404 /index.php

RewriteCond %{HTTP_HOST} !^www.metaalboutique.nl$
RewriteRule ^(.*)$ https://www.metaalboutique.nl/$1 [R=301,L]

<IfModule mod_rewrite.c>
  RewriteCond %{HTTPS} !=on
  RewriteCond %{HTTP_HOST} ^metaalboutique.nl$ [NC]
  RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^([^.] )$ $1.php [NC,L]

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php

Redirect 301 /closed/index.php    https://www.metaalboutique.nl

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?metaalboutique.nl [NC]
RewriteRule .(jpg|jpeg|png|gif)$ - [NC,F,L]

RewriteRule ^Contactformulier$ contact_form.php
 

Ответ №1:

Ваше правило RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^([^.] )$ $1.php [NC,L]
переписывает все, что не является каталогом php . Это также сопоставляет /Contactformulier и перезаписывает его /Contactformulier.php . Вы можете либо удалить это правило из вашего htaccess, либо использовать следующую модифицированную версию вашего htaccess .

 <Files .htaccess>
order allow,deny
deny from all
</Files>

Redirect 301 /closed/index.php    https://www.metaalboutique.nl/

RewriteEngine on
#redirect http to https and non-www in a single redirect
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^metaalboutique.nl$ [NC]
RewriteRule (.*) https://www.metaalboutique.nl/$1 [R=301,L]
#deny access to remote referers
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?metaalboutique.nl [NC]
 RewriteRule .(jpg|jpeg|png|gif)$ - [NC,F,L]
#access .php files without using extension
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond %{REQUEST_FILENAME}.php -f
 RewriteRule ^(.*)$ $1.php [L]
#rewrite /Contactformulier to /contact_form.php
 RewriteRule ^Contactformulier$ contact_form.php [L]
 

Перед тестированием обязательно очистите кэш браузера.