Apache2 使用 https 重写条件
Apache2 rewrite condition with https
我有 2 个 .htacces 文件
- /usr/local/apache2/htdocs .htacess 文件
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
RewriteCond %{REQUEST_URI} !^/test2/
RewriteRule ^(.*)$ /test2/ [NC,QSA]
- /usr/local/apache2/htdocs/test2 .htacess 文件
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
RewriteRule !^(ui/|index.php|favicon.ico) - [F,L,NC]
#RewriteCond %{HTTPS} off
#RewriteCond %{REQUEST_URI} !^/admin
#RewriteRule .* https://%{HTTP_HOST}%/admin [L,R=301]
</IfModule>
应用会强制应用到url下面,同时隐藏index.php
http://www.example.com/admin
另外还有另一个 link 和 http://www.example.com/display
在httpd.conf中配置的默认目录是:
DocumentRoot "/usr/local/apache2/htdocs/test2"
<Directory "/usr/local/apache2/htdocs/test2"
但是,如果我尝试 运行 使用 https link
https://www.example.com/admin
我会得到这个错误:
Forbidden
You don't have permission to access /admin/ on this server.
我已经尝试使用#commented 代码,但仍然有错误。请帮忙
这些问题已通过应用解决
- 我发现还有另一个文件 ssl.conf 有一个 DocumentRoot,通过在 ssl.conf
中添加相同的文档根来解决这个问题
DocumentRoot "/usr/local/apache2/htdocs/test2"
<Directory "/usr/local/apache2/htdocs/test2"
和
- 将文件 php.conf 更改为(# 是旧代码)
# Depreciated in Apache 2.2
# Order allow,deny
# Deny from all
# Satisfy All
# New in Apache 2.4
<RequireAll>
Require valid-user Require ip 127.0.0.1
</RequireAll>
我有 2 个 .htacces 文件
- /usr/local/apache2/htdocs .htacess 文件
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
RewriteCond %{REQUEST_URI} !^/test2/
RewriteRule ^(.*)$ /test2/ [NC,QSA]
- /usr/local/apache2/htdocs/test2 .htacess 文件
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
RewriteRule !^(ui/|index.php|favicon.ico) - [F,L,NC]
#RewriteCond %{HTTPS} off
#RewriteCond %{REQUEST_URI} !^/admin
#RewriteRule .* https://%{HTTP_HOST}%/admin [L,R=301]
</IfModule>
应用会强制应用到url下面,同时隐藏index.php
http://www.example.com/admin 另外还有另一个 link 和 http://www.example.com/display
在httpd.conf中配置的默认目录是:
DocumentRoot "/usr/local/apache2/htdocs/test2"
<Directory "/usr/local/apache2/htdocs/test2"
但是,如果我尝试 运行 使用 https link https://www.example.com/admin
我会得到这个错误:
Forbidden
You don't have permission to access /admin/ on this server.
我已经尝试使用#commented 代码,但仍然有错误。请帮忙
这些问题已通过应用解决
- 我发现还有另一个文件 ssl.conf 有一个 DocumentRoot,通过在 ssl.conf 中添加相同的文档根来解决这个问题
DocumentRoot "/usr/local/apache2/htdocs/test2"
<Directory "/usr/local/apache2/htdocs/test2"
和
- 将文件 php.conf 更改为(# 是旧代码)
# Depreciated in Apache 2.2
# Order allow,deny
# Deny from all
# Satisfy All
# New in Apache 2.4
<RequireAll>
Require valid-user Require ip 127.0.0.1
</RequireAll>