为什么这样做:
RewriteRule (.+)/$ $1
Run Code Online (Sandbox Code Playgroud)
这项工作:
RewriteRule (.+)/$ $1 [L] #bla bla bla
Run Code Online (Sandbox Code Playgroud)
但这不起作用:
RewriteRule (.+)/$ $1 #bla bla bla
Run Code Online (Sandbox Code Playgroud) 可能重复:
通过PHP进行HTTP身份验证注销
你好
我在我的网站上使用.htaccess和保护了一些功能.htpasswd.当用户尝试访问它时,他们会立即输入详细信息.他们输入他们的细节并进入,可以看到东西等.一切正常.
我的问题是如何logout为这种类型的身份验证创建功能.我知道他们可以关闭浏览器窗口以"注销".但这并不理想.你有什么建议给我的?
谢谢.
似乎是apache的地方所以这里去:)
古老的问题:我如何重定向HTTP-> HTTPS,然后只有在HTTPS时才进行身份验证?
哦 - 我想把它大部分放在一个可以包含在多个<directory>或<location>块中的片段中,所以没有基于虚拟主机级别随机路径的重写...
好吧,这就是我所拥有的似乎有用的东西:
在VirtualHost块的顶部
# Set ssl_off environment variable
RewriteEngine on
RewriteCond %{HTTPS} =on
RewriteRule ^ - [E=ssl]
Run Code Online (Sandbox Code Playgroud)
在位置或目录块中
RewriteEngine on
# Case 1 redirect port 80 SSL
RewriteCond %{HTTPS} !=on
RewriteCond %{SERVER_PORT} =80
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [R=301]
AuthType Basic
AuthBasicProvider external
AuthExternal auth_pam
AuthName "My Underpants"
AuthzUnixgroup on
Order Deny,Allow
Deny from all
Allow from env=!ssl
Satisfy any
Require group nice-users
Run Code Online (Sandbox Code Playgroud)
加号
所有这些条件都可以将Require's抽象为一个片段文件,以便在每个位置包含在一行中
它修复了强制每个位置的SSL和身份验证,因此错误的可能性更小
弊
血淋淋的地狱,这很难直观!我所知道的一切可能都很脆弱......
有没有更好的方法(不是我发现的......)?
如果有任何严重的缺陷,将非常欢迎评论:)
如果Apache有一个合理的配置语法与泛型,Aside Life会更容易
<If expression> </ If> …
我正在一个Wordpress网站上工作,我的页面正在使用一个永久链接结构,mod_rewrites看起来像目录.对于几页我想使用基本身份验证来密码保护一些页面.我如何在我的.htaccess文件中写这个?我保护文件或重写的地址吗?
我已经阅读了一些关于如何重定向到SSL的帖子,还有一些关于如何确保网站使用www子域/规范名称的帖子,以及一些关于如何设置Basic Auth的帖子.这是我现在在.htaccess文件中的内容:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteEngine on
RewriteCond %{HTTP_HOST} !(^www\.site\.com*)$
RewriteRule (.*) https://www.site.com$1 [R=301,L]
AuthName "Locked"
AuthUserFile "/home/.htpasswd"
AuthType Basic
require valid-user
它工作得很好,但我想优化它.我的问题包括: