Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess 使用htaccess隐藏扩展,但超链接重定向到文件夹索引,而不是php_.htaccess_Hide - Fatal编程技术网

.htaccess 使用htaccess隐藏扩展,但超链接重定向到文件夹索引,而不是php

.htaccess 使用htaccess隐藏扩展,但超链接重定向到文件夹索引,而不是php,.htaccess,hide,.htaccess,Hide,在我的服务器上,我使用此.htaccess删除.PHP扩展名: RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.php -f RewriteRule ^(.*)$ $1.php 它工作正常,/about转到about.php页面,/contact转到.contact.php文件。但是我有一个projects.php和一个projects文件夹,所以超链接重定向到文件夹索引

在我的服务器上,我使用此.htaccess删除.PHP扩展名:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
它工作正常,/about转到about.php页面,/contact转到.contact.php文件。但是我有一个projects.php和一个projects文件夹,所以超链接重定向到文件夹索引。我知道我可以简单地重命名php或文件夹并解决问题,但是如果我在项目文件夹中有子文件夹,我将无法将URL保持为/projects/photography 这里有一张图片可以帮助解释:

试试看

DirectorySlash Off

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d [OR]
RewriteCond %{REQUEST_URI} ^/projects$ [NC]
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

它应该与DirectorySlash off一起工作,但请参见。如果您不喜欢它们,最好重命名projects.php

domain.com/projects自动链接到domain.com/projects/(带有额外的斜杠)和指向索引的链接still@PrestonMcPeak请尝试允许可选尾随的编辑版本slash@PrestonMcPeak我已经在上面做了必要的编辑:-)。让我知道它是否工作否:/n它仍然选择文件夹而不是文件夹。PHP@PrestonMcPeak当DirectorySlash打开时,
/projects
被301重定向到
/projects/
,并且您的浏览器正在缓存重定向。在私人浏览模式下尝试此解决方案,您将看到它起作用。我自己也测试过。