Я использую htaccess, чтобы переписать некоторые URL, который работает нормально. Но недавно я переместил некоторые файлы в каталог, чтобы сохранить мою файловую структуру в чистоте, и теперь перезаписи перестали работать.
Это мой файл .htaccess:
DirectoryIndex
RewriteEngine on
RewriteBase /
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,NE,R=301]
#Indexes uitzetten
Options -Indexes
#Cross site access toestaan
Header set Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type"
#CMS rewrite
RewriteRule ^cms/$ /cms/administrator [L]
#Block ftpconfig
<FilesMatch ".ftpconfig">
Order Allow,Deny
Deny from All
</FilesMatch>
DirectoryIndex index.php
RewriteRule ^home index.php [QSA,L]
RewriteRule ^verificatie/(.*)$ verify.php?alias=$1 [QSA,L]
RewriteRule ^login/(.*)$ account/login.php?alias=$1 [QSA,L]
RewriteRule ^login account/login.php [QSA,L]
RewriteRule ^uitloggen includes/uitloggen.php [QSA,L]
#Zorg ervoor dat onderstaande regels alleen worden uitgevoerd als het geen folder (d) is of een file (f)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([\w-]+)/([\w-]+)/?$ product.php?cat=$1&alias=$2 [QSA,L]
Это прекрасно работает: RewriteRule ^uitloggen includes/uitloggen.php [QSA,L]
.
Но эти переписывания выдают ошибку 404 при открытии страницы:
RewriteRule ^login/(.*)$ account/login.php?alias=$1 [QSA,L]
RewriteRule ^login account/login.php [QSA,L]
Это моя файловая структура:
root
- new
-- includes
-- account
Мой файл .htaccess находится в папка /new/
.
Почему один работает, а другие нет? Я проверил в своей IDE и Filezilla, действительно ли файлы находятся в этих каталогах, и я на 100% уверен, что они есть.