首页 > 解决方案 > .htaccess 为共享主机上的多个域隐藏 .php

问题描述

我有一个托管服务,其中包含我的主域和其他几个域(不是子域 - 它们是它们自己的网站)。我希望能够将以下代码用于此主目录中的任何域。

目前文件夹结构是这样的:

主域——(主目录/主域网站文件)。我们称之为 www.maindomain.com

其他域——(主目录/其他域/其他域网站文件)。我们称之为 www.otherdomain.com

下面的代码完全隐藏了 .php 文件扩展名。因此,即使用户输入没有文件扩展名的链接,它仍然会转到指定页面并且仍然不显示 .php

显然,此代码仅适用于主域。但是,我真的很想知道如何更改它,以便它也可以用于其他域。

我真的希望有人可以帮助我!:)

RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.maindomain.com/$1 [R,L]

## hide .php extension
# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L,NC]

## To internally redirect /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_URI}.php [L]

标签: phpapache.htaccess

解决方案


试试这个:

RewriteEngine On

RewriteCond %{THE_REQUEST} ^\w+\ /(.*)\.php(\?.*)?\ HTTP/
RewriteRule ^ http://%{HTTP_HOST}/%1 [R=301]

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule .* $0.php

推荐阅读