首页 > 解决方案 > 可能的 HTACCESS 问题无法正确提供子页面

问题描述

主页 TLD 解析良好。

单击子页面链接时,例如“mortgages/”,子页面不显示,而是显示主页,尽管漂亮的 URL 确实正确显示为 www.mydomain.co.uk/mortgages/

只有当我在菜单结构中输入实际页面“mortgages.php”时,才会显示子页面。

所以似乎子页面由于某种原因没有正确解析。

这可能是 HTACCESS 问题吗?

尝试了对 HTACCESS 的各种更改

当前的 HTACCESS 代码

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

IndexIgnore *

单击子页面链接时,例如“mortgages/”,子页面不显示,而是显示主页,尽管漂亮的 URL 确实正确显示为 www.mydomain.co.uk/mortgages/

标签: .htaccessmod-rewrite

解决方案


我想这就是你想要的

删除 php 文件扩展名——例如https://example.com/file.php将变为https://example.com/file

备选方案 1

Options +MultiViews
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [NC,L]

备选方案 2

Options +MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/$ $1.php
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]

推荐阅读