Tim*_*ahn 3 apache .htaccess .htpasswd
我一直在寻找StackOverflow的答案,并看到许多问题即将解决,但目前还没有任何解决方法。
我想.htaccess
根据调用它的域应用不同的规则。基本上,如果subdomain.example.com被点击,则重定向到google.com。如果找到本地主机,则重定向到yahoo.com。如果点击了www.example.com(或example.com),请重定向至bing.com。
稍后,我将添加实际的重写规则(设置环境变量和htpasswd保护),但是首先我需要使“ if then”部分起作用。
我的(无效)代码如下。任何帮助是极大的赞赏。
RewriteEngine On
RewriteCond %{HTTP_HOST} ^subdomain\.example\.com$
RewriteRule http://google.com/ [L,R=301]
RewriteCond %{HTTP_HOST} ^localhost$
RewriteRule http://yahoo.com/ [L,R=301]
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$
RewriteRule http://bing.com/ [L,R=301]
Run Code Online (Sandbox Code Playgroud)
编辑:根据下面的Barta的评论更新了(但仍然无法使用)代码。
RewriteEngine On
RewriteCond %{HTTP_HOST} ^subdomain\.domain\.com$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .? - [S=1]
RewriteRule ^(.*)$ /index.php/$1 [L]
RewriteCond %{HTTP_HOST} ^localhost$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .? - [S=7]
RewriteRule ^(.*)$ /subdir/www/index.php/$1 [L]
RewriteRule ^ - [E=MYSQL_DB_HOST:localhost]
RewriteRule ^ - [E=MYSQL_DB_NAME:XXX]
RewriteRule ^ - [E=MYSQL_USERNAME:XXX]
RewriteRule ^ - [E=MYSQL_PASSWORD:XXX]
RewriteRule ^ - [E=BASE_URL:XXX]
RewriteRule ^ - [E=ENVIRONMENT:XXX]
RewriteCond %{HTTP_HOST} ^example\.com$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .? - [S=1]
RewriteRule ^(.*)$ /index.php/$1 [L]
Run Code Online (Sandbox Code Playgroud)
小智 5
如果您使用的是Apache 2.4,则可能会发现这很有用。
我的服务器HTTPS
通过HTTPS进行连接时会设置环境变量,尽管可以通过不同的方式进行设置。我的目标是强制进行HTTP身份验证,但仅在安全连接上进行,并将非安全连接重定向到安全位置。
<If "%{HTTPS} == 'on'">
AuthName "Files are protected, enter your normal website email and password"
AuthType Basic
AuthUserFile /home/sites/mysite.co.uk/.htpasswd
Require valid-user
</If>
<Else>
RewriteEngine On
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</Else>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
28932 次 |
最近记录: |