标签: .htaccess

拒绝直接访问除index.php之外的所有.php文件

我想拒绝直接访问.php除一个以外的所有文件:index.php

唯一访问其他.php文件应该通过PHP include.

如果可能,我希望所有文件都在同一个文件夹中.

更新:

一般规则会很好,所以我不需要浏览所有文件.风险是我忘记了文件或行.

更新2:

index.php是一个文件夹中www.myadress.com/myfolder/index.php

我想拒绝访问该文件夹中的所有.php文件myfolder和子文件夹.

php .htaccess

75
推荐指数
7
解决办法
22万
查看次数

使用.htaccess将HTTP重定向到HTTP

请不要向我推荐超过173个upvotes 的长而非常详细的帖子.它对我不起作用.我还尝试了许多其他(1,2,3,4).他们都给我TOO_MANY_REDIRECTS或错误500.所以,这是我的问题:

使用我当前的.htaccess,会发生以下情况:

https://www.dukescasino.com/ - 完美地运作

https://dukescasino.com/ - 重定向到上面这是伟大的

下面两个选项加载正常,但它应该重定向到https版本:

http://www.dukescasino.com/

http://dukescasino.com/

这是当前的.htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)

我不相信它是相关的,但如果是这样,这里是当前活动插件的列表:

  • 高级自定义字段
  • All In One SEO Pack
  • 波普搜索框项目类型为导航菜单
  • 联系表格7
  • 禁用评论
  • Google XML Sitemaps
  • Jetpack by WordPress.com
  • 搜索和过滤
  • 滑块WD
  • TablePress
  • UpdraftPlus - 备份/恢复
  • Wordfence安全
  • WPide
  • WP Smush
  • WP超级缓存

编辑1 - 执行的测试:

测试A:

<IfModule mod_rewrite.c> …
Run Code Online (Sandbox Code Playgroud)

wordpress .htaccess https redirect http

75
推荐指数
4
解决办法
16万
查看次数

.htaccess将http重定向到https

我有一个旧的url(www1.test.net),我想将其重定向到https://www1.test.net
我在我的网站上实现并安装了我们的SSL证书.
这是我的旧文件.htaccess:

RewriteEngine On
RewriteRule !\.(js|gif|jpg|png|css|txt)$ public/index.php [L]
RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(.*)$ public/$1 [L]
Run Code Online (Sandbox Code Playgroud)

如何配置我的.htaccess文件以便url自动重定向到https
谢谢!

apache .htaccess

73
推荐指数
8
解决办法
17万
查看次数

htaccess从Basic Auth中排除一个URL

我需要从正常的htaccess Basic Auth保护中排除一个Url(甚至更好的一个前缀).像/ callbacks/myBank/ callbacks /之类的东西.*你有任何提示怎么做?

我不想要的是如何排除文件.这必须是url(因为这是基于PHP框架的解决方案,并且所有url都使用mod_rewrite重定向到index.php).所以这个网址下没有文件.没有.

其中一些网址只是来自其他服务的回调(没有IP是未知的,所以我不能基于IP排除),他们无法提示用户/密码.

目前的定义很简单:

AuthName "Please login."
AuthGroupFile /dev/null
AuthType Basic
AuthUserFile /xxx/.htpasswd
require valid-user 
Run Code Online (Sandbox Code Playgroud)

apache .htaccess authorization

72
推荐指数
4
解决办法
7万
查看次数

urlencoded正斜杠正在破坏URL

关于系统

我的项目中有这种格式的URL: -

http://project_name/browse_by_exam/type/tutor_search/keyword/class/new_search/1/search_exam/0/search_subject/0
Run Code Online (Sandbox Code Playgroud)

其中关键字/类对意味着使用"class"关键字进行搜索.

我有一个常见的index.php文件,它为项目中的每个模块执行.只有一个重写规则可以从URL中删除index.php: -

RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,QSA]
Run Code Online (Sandbox Code Playgroud)

我在阅读搜索URL时准备搜索URL和urldecode()时使用urlencode().

问题

只有正斜杠字符会破坏导致404页面未找到错误的URL.例如,如果我搜索one/twoURL是

http://project_name/browse_by_exam/type/tutor_search/keyword/one%2Ftwo/new_search/1/search_exam/0/search_subject/0/page_sort/
Run Code Online (Sandbox Code Playgroud)

我该如何解决?我需要将index.php隐藏在URL中.否则,如果不需要,那么正斜杠就没有问题了,我可以使用这个URL: -

http://project_name/index.php?browse_by_exam/type/tutor_search/keyword/one
%2Ftwo/new_search/1/search_exam/0/search_subject/0
Run Code Online (Sandbox Code Playgroud)

.htaccess url-rewriting url-encoding http-status-code-404

70
推荐指数
3
解决办法
11万
查看次数

如何仅在HTTPS上从.htaccess设置HSTS标头

我的Web应用程序在我控制的不同数量的主机上运行.为了防止需要更改每个vhost的Apache配置,我在我的repo中使用.htaccess文件添加了大部分配置,因此每个主机的基本设置只是几行.这也可以在部署新版本时更改配置.目前.htaccess(un)设置头文件,做一些重写魔术并控制UA的缓存.

我想使用.htaccess在应用程序中启用HSTS.只需设置标题很简单:

Header always set Strict-Transport-Security "max-age=31536000"
Run Code Online (Sandbox Code Playgroud)

但规范明确指出:"HSTS主机不得在通过非安全传输传输的HTTP响应中包含STS头字段." 因此,我不希望在通过HTTP连接发送标头时发送标头.见http://tools.ietf.org/html/draft-ietf-websec-strict-transport-sec-14.

我试图使用环境变量设置标题,但我被困在那里.有谁知道怎么做?

apache .htaccess mod-headers

70
推荐指数
3
解决办法
6万
查看次数

htaccess - 如何强制客户端的浏览器清除缓存?

对于我的网站,我有以下htaccess规则:

# BEGIN Gzip
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript
</IfModule>
# END Gzip

# BEGIN EXPIRES
<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresDefault "access plus 10 days"
    ExpiresByType text/css "access plus 1 month"
    ExpiresByType text/plain "access plus 1 month"
    ExpiresByType image/gif "access plus 1 month"
    ExpiresByType image/png "access plus 1 month"
    ExpiresByType image/jpeg "access plus 1 month"
    ExpiresByType application/x-javascript "access plus 1 month"
    ExpiresByType application/javascript "access plus 1 month"
    ExpiresByType application/x-icon "access plus 1 year"
</IfModule> …
Run Code Online (Sandbox Code Playgroud)

.htaccess caching gzip

68
推荐指数
4
解决办法
15万
查看次数

禁止您无权访问此服务器上的/

我今天想要做的就是将重定向规则写入子文件夹,例如:输入URL:example.com,然后重定向到example.com/subfolder

这么简单的愿望.我试图在互联网上找到解决方案.互联网告诉我在htdocs root中添加一个.htaccess文件:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^example\.com$
RewriteRule (.*) http://www.example.com/$1 [R=301,L]
RewriteRule ^$ subfolder [L]
Run Code Online (Sandbox Code Playgroud)

我这样做了 但是显然没有成功,他们没有告诉我我必须取消注释httpd.conf中的模块:

LoadModule rewrite_module modules/mod_rewrite.so
Run Code Online (Sandbox Code Playgroud)

所以我也这样做了.再没有成功.他们没有告诉我我必须更改我的httpd.conf以便启用.htaccess文件:

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

DocumentRoot "c:/Apache24/htdocs"
<Directory "c:/Apache24/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>
Run Code Online (Sandbox Code Playgroud)

再次没有成功,因为我在输入URL时收到此错误:

禁止您无权访问此服务器上的/.

现在我卡住了,我在互联网上找不到更多的解决方案.由于私人原因,我只是在Windows 7机器上运行Apache 2.4.

apache .htaccess mod-rewrite httpd.conf

67
推荐指数
2
解决办法
45万
查看次数

使用htaccess Https到http重定向

我正在尝试将https://www.example.com重定向到http://www.example.com.我在.htaccess文件中尝试了以下代码

RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)

此代码成功将https://example.com重定向到http://www.example.com.但是,当我输入https://www.example.com时,它会在浏览器中显示"网页不可用"错误.

我也尝试了以下2个代码但没有成功

尝试1

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/(.*):NOSSL$ http://www.example.com/$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)

尝试2

RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}
Run Code Online (Sandbox Code Playgroud)

以上两种尝试均失败.有什么建议?

apache .htaccess https http

66
推荐指数
4
解决办法
23万
查看次数

如何阻止100,000多个个人IP地址

介绍

如何IP address从Web应用程序/服务器中阻止大量数据.显然,可以用PHP任何编程语言轻松完成

$ipList = []; // array list or from database
if (in_array(getIP(), $ipList)) {
    // Log IP & Access information
    header("https://www.google.com.ng/search?q=fool"); // redirect
    exit(); // exit
} 
Run Code Online (Sandbox Code Playgroud)

或使用 htaccess

order allow,deny
deny from 123.45.6.7
deny from 012.34.5.
# .... the list continues
allow from all
Run Code Online (Sandbox Code Playgroud)

问题

  • 我试图阻止整个100k plus individual IPssubnets
  • 我试图在阻止此类IP之前避免用户访问PHP
  • 100000+超过1.5MB,如果要一直加载信息,那就很多htaccess
  • IP数据库仍在增长......他们需要动态添加更多值
  • 设置iptables100000+ 禁令只是荒谬(可能是错的)

愚蠢的想法

order allow,deny
deny from database    <-------- Not sure if this is …
Run Code Online (Sandbox Code Playgroud)

php apache security .htaccess

66
推荐指数
6
解决办法
2万
查看次数