我想拒绝直接访问.php除一个以外的所有文件:index.php
唯一访问其他.php文件应该通过PHP include.
如果可能,我希望所有文件都在同一个文件夹中.
更新:
一般规则会很好,所以我不需要浏览所有文件.风险是我忘记了文件或行.
更新2:
该index.php是一个文件夹中www.myadress.com/myfolder/index.php
我想拒绝访问该文件夹中的所有.php文件myfolder和子文件夹.
请不要向我推荐超过173个upvotes 的长而非常详细的帖子.它对我不起作用.我还尝试了许多其他(1,2,3,4).他们都给我TOO_MANY_REDIRECTS或错误500.所以,这是我的问题:
使用我当前的.htaccess,会发生以下情况:
https://www.dukescasino.com/ - 完美地运作
https://dukescasino.com/ - 重定向到上面这是伟大的
下面两个选项加载正常,但它应该重定向到https版本:
这是当前的.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)
我不相信它是相关的,但如果是这样,这里是当前活动插件的列表:
编辑1 - 执行的测试:
测试A:
<IfModule mod_rewrite.c> …Run Code Online (Sandbox Code Playgroud) 我有一个旧的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?
谢谢!
我需要从正常的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) 关于系统
我的项目中有这种格式的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) 我的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.
我试图使用环境变量设置标题,但我被困在那里.有谁知道怎么做?
对于我的网站,我有以下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) 我今天想要做的就是将重定向规则写入子文件夹,例如:输入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.
我正在尝试将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)
以上两种尝试均失败.有什么建议?
介绍
如何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 IPs不subnets htaccess了iptables100000+ 禁令只是荒谬(可能是错的)愚蠢的想法
order allow,deny
deny from database <-------- Not sure if this is …Run Code Online (Sandbox Code Playgroud) .htaccess ×10
apache ×6
http ×2
https ×2
php ×2
caching ×1
gzip ×1
httpd.conf ×1
mod-headers ×1
mod-rewrite ×1
redirect ×1
security ×1
url-encoding ×1
wordpress ×1