.htaccess-打开子域中没有扩展名的文件,使用.htaccess

.htaccess-打开子域中没有扩展名的文件,使用.htaccess,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我下载了一个网站,所有文件都用HTML编码,并且没有任何扩展名 我的根域是基于WordPress的 我想使用.htaccess以HTML格式打开所有文件-这些文件位于子域中 RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^(.+)$ /$

我下载了一个网站,所有文件都用HTML编码,并且没有任何扩展名

我的根域是基于WordPress的

我想使用
.htaccess
以HTML格式打开所有文件-这些文件位于子域中

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+)$ /$1.php [L,QSA]
我尝试过这个,认为它只适用于根域。。。我需要子域的帮助

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+)$ /$1.php [L,QSA]

你的问题有点模糊,因为你没有给出任何URL和文件结构的例子。但是,如果HTML文件没有文件扩展名,那么从服务器发送的
内容类型
HTTP响应头很可能是错误的或完全不存在的(并且依赖于浏览器“内容嗅探”——这将得到混合的结果)

我们需要做一些假设:

  • 所有HTML文件(没有文件扩展名)在文件路径中的任何位置都不包含点

  • CSS和JS文件确实具有适当的文件扩展名,即
    .CSS
    .JS
    ,并且已返回正确的mime类型(
    内容类型
    标题)

    如果这些也没有文件扩展名,那么它们需要包含在特定的目录中,以便我们可以相应地设置适当的mime类型。我们还需要为我们的规则创建例外,以避免冲突

因此,为了让浏览器将这些文件解释为HTML,我们需要确保在
内容类型
响应头中发送正确的mime类型(即
text/HTML
)。(我认为目前情况并非如此。)

例如,在子域中的
.htaccess
文件中使用mod_rewrite(我假设它与主域是分开的):

但是,如上所述,如果您的静态资源(JS、CSS、图像等)也没有文件扩展名,那么我们需要为上述规则添加条件,并为不同的文件/mime类型创建其他规则


旁白:


您在问题中发布的这些指示似乎与您的问题无关,这只会增加评论中的混乱。

这是什么意思?“我想以html的形式打开所有文件”不是那些php文件吗?如果你想将规则的应用限制在“子域”(我假设是请求的主机名),你需要添加另一个
RewriteCond
将HTTP_主机与该主机名进行比较:
RewriteCond%{HTTP_host}^sub\。example\.com$
不,所有的都是html文件(html css js文件)…不一定是php…感谢您的回复…shud我将此代码添加到root.htaccess文件或子域文件夹中…抱歉,我不擅长编码..我正在尝试学习..无论如何谢谢:)但您明确检查是否存在具有该基本名称的现有php文件。。。另外,您还显式地重写了处理php文件的请求……考虑到您还声明了css和js文件,您所说的“所有文件都用html编码”是什么意思?!?
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+)$ /$1.php [L,QSA]