网站链接出“/”

时间:2013-09-11 21:10:44

标签: apache .htaccess mod-rewrite directoryindex

我的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代码..提前致谢。

3 个答案:

答案 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