我的Apache 2.2正在端口“8080”上运行我想调用我的网站网址http://www.example.in:8080/abc/xyz.html/index.php(xyz.html是一个文件夹)
as ....
http://www.example.in:8080/abc/xyz.html
任何人都可以帮助我.htaccess吗...
注:
1)example.in:8080/abc/xyz.html/一切都很好,但我想在结尾处避免使用“/”。
2)我想避免在.htaccess中使用DirectorySlash Tried DirectorySlash Off导致xyz.html文件夹列表。
3)尝试关闭DirectorySlash,选项-indexes RESULTED 403 Forbidden Error
4)尝试使用DirectoryIndex index.php RESULT在输入“/”时起作用但在没有“/”列出内容的情况下不起作用...
任何人都可以帮我处理.htaccess代码..提前致谢。
答案 0 :(得分:0)
DirectorySlash
会有一个固有的信息泄露安全问题。这意味着如果你把它关闭(你确实需要),你必须自己处理尾随斜杠。所以像这样:
DirectorySlash Off
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+[^/])$ /$1/ [L]
请注意,这基本上与DirectorySlash
做了同样的事情,但不是重定向浏览器,而是在内部重写URI以添加尾部斜杠。这意味着它就网络服务器而言,但是浏览器看不到它。
然后,您可以对index.php
:
RewriteCond %{THE_REQUEST} ^(GET|HEAD)\ (.*)/index\.php
RewriteRule ^(.*?)/?index.php$ /$1 [L,R=301]
答案 1 :(得分:0)
这是我的.htaccess保留在xyz.html文件夹
旁边DirectorySlash Off
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+[^/])$ /$1/ [L]
RewriteCond %{THE_REQUEST} ^(GET|HEAD)\ (.*)/index\.php
RewriteRule ^(.*?)/?index.php$ /$1 [L,R=301]
结果是....它列出了目录内容。
答案 2 :(得分:0)
这是我修复它的方式
将以下代码添加到根文件夹.htaccess
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteRule ^(abx/xyz.html)/?$ $1/index.php [L,NC]
并将以下代码添加到xyz.html文件夹
旁边的.htaccess文件中DirectorySlash Off
Directoryindex index.php
Options -indexes