htacces не переписывается, когда файл находится в подкаталоге - PullRequest
0 голосов
/ 07 января 2020

Я использую 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% уверен, что они есть.

...