【问题标题】:make .htaccess to prevent navigating to directories制作 .htaccess 以防止导航到目录
【发布时间】:2017-12-10 10:33:07
【问题描述】:

我有这个.htaccess

DirectorySlash On
RewriteEngine On

RewriteRule /?\.htaccess$ - [F,L]

# Remove trailing slash
RewriteRule ^(.*)/$ /project/$1 [R,L]

# Map every link to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/project/index.php.*$
RewriteRule ^(.*)$ /project/index.php?___MYROUTER=$1 [QSA,END]

但是当我导航到我的.htaccess 文件旁边的目录之一时,例如浏览器中的css 文件夹,地址如下:

http://localhost/project/css

那么我的地址将更改为:

http://localhost/project/css?___MYROUTER=css&___MYROUTER=css&___MYROUTER=css&___MYROUTER=css&___MYROUTER=css&___MYROUTER=css&___MYROUTER=css&___MYROUTER=css&___MYROUTER=css&___MYROUTER=css

在 Firefox 中,结果如下:

页面未正确重定向

Firefox 检测到服务器正在重定向请求 这个地址永远不会完成。

This problem can sometimes be caused by disabling or refusing to accept cookies.

但其他不指向现有目录的地址也可以,例如:

http://localhost/project/mycontroller

这个地址没问题,不会改成其他的

我的.htaccess 有什么问题?

这是我的log 文件

【问题讨论】:

    标签: apache .htaccess web server wamp


    【解决方案1】:

    这是因为 Apache 在 mod_dir 模块完成执行后在目录前面添加了一个斜杠。

    您可以使用单独的规则在目录前面添加一个尾部斜杠。

    DirectorySlash On
    RewriteEngine On
    
    RewriteRule /?\.htaccess$ - [F,L]
    
    # Remove trailing slash for non directories
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /project/$1 [R,L]
    
    # add a trailing slash to directories
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule [^/]$ %{REQUEST_URI}/ [L,R=301,NE]
    
    
    # Map every link to index.php
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_URI} !^/project/index\.php [NC]
    RewriteRule ^(.*)$ project/index.php?___MYROUTER=$1 [QSA,END]
    

    【讨论】:

    • 你测试了吗?我已经对其进行了测试,但它无法正常工作。目录问题消失了,但目录address?___MYROUTE=/css 仍然出现,我希望隐藏此参数
    • 清除浏览器缓存后尝试我的更新答案。
    • 如果您可以通过 TeamViwer 来看看我的 apache,我如何直接与您联系?请救救我:-(这是我的电报IDt.me/omidgfx
    • 那么您现在还面临什么问题?您也可以在最后一个RewriteRule 之前添加RewriteCond %{REQUEST_FILENAME} !-d
    猜你喜欢
    • 1970-01-01
    • 2016-07-30
    • 2013-09-30
    • 2017-11-19
    • 2021-09-05
    • 1970-01-01
    • 1970-01-01
    • 2013-02-21
    • 2019-11-13
    相关资源
    最近更新 更多