我的.htaccess文件存在一些问题,因为我不太了解它,我想知道是否有人可以帮助我。基本上会发生以下情况:
每当我输入一个不存在的网址时,例如domain.com/peanut,它会显示我已隐藏在我的.htaccess中的logged-in.php页面,这意味着什么都没有发生,内容正在显示。< / p>
需要将不存在的页面重定向到ErrorDocuments。这是我的.htaccess文件
RewriteEngine On
RewriteBase /
#Hide de submap pages
RewriteRule ^$ pages/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ pages/$1
#hide de logged-in.php file
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ logged-in.php?$1 [L,QSA]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s(.*)/logged-in\.php [NC]
RewriteRule ^ %1 [R=301,L]
ErrorDocument 400 /400.html
ErrorDocument 401 /401.html
ErrorDocument 403 /403.html
ErrorDocument 404 /404.html
ErrorDocument 500 /500.html
谢谢
答案 0 :(得分:1)
这是导致它的规则:
#hide de logged-in.php file
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ logged-in.php?$1 [L,QSA]
但它看起来像是你想要的东西。此规则基本上表示“如果请求是针对不存在的文件或目录”,则将其重写为logged-in.php
。接下来的规则接受logged-in.php
的请求并重定向浏览器以删除URL的“logged-in.php”位。
如果要删除它,只需将htaccess文件更改为:
RewriteEngine On
RewriteBase /
#Hide de submap pages
RewriteRule ^$ pages/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/pages%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}/pages%{REQUEST_URI} -d
RewriteRule ^(.*)$ pages/$1 [L]
ErrorDocument 400 /400.html
ErrorDocument 401 /401.html
ErrorDocument 403 /403.html
ErrorDocument 404 /404.html