Apache 将一个子域发送到子目录,将其他所有内容发送到带有参数的文件
好家伙,我一整天都在为这件事挣扎 从子域重定向到作为参数传入子域的脚本文件可以正常工作 当一个特定的子域实际上是一个真正的文件夹(phpmyadmin)时,我似乎无法使它工作,至少在前面提到的规则中是这样 这是我的东西:Apache 将一个子域发送到子目录,将其他所有内容发送到带有参数的文件,apache,mod-rewrite,redirect,Apache,Mod Rewrite,Redirect,好家伙,我一整天都在为这件事挣扎 从子域重定向到作为参数传入子域的脚本文件可以正常工作 当一个特定的子域实际上是一个真正的文件夹(phpmyadmin)时,我似乎无法使它工作,至少在前面提到的规则中是这样 这是我的东西: <VirtualHost *.domain.com:443> ServerName *.domain.com ServerAlias *.domain.com DocumentRoot /home/domain/web RewriteEngine On Rewrit
<VirtualHost *.domain.com:443>
ServerName *.domain.com
ServerAlias *.domain.com
DocumentRoot /home/domain/web
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.* [NC]
RewriteCond %{HTTP_HOST} ^(phpmyadmin)\.domain\.com
RewriteCond %{REQUEST_URI} !^phpmyadmin
RewriteRule ^(.*)$ /phpmyadmin [L]
RewriteCond %{HTTP_HOST} ^([^\.]+)\.domain\.com
RewriteRule ^\/script2$ /public/script2.php?param1=%1 [L]
RewriteCond %{HTTP_HOST} ^([^\.]+)\.domain\.com
RewriteRule ^(.*) /public/script1.php?param1=%1 [L]
<Directory /home/domain/web>
Options -Indexes IncludesNOEXEC FollowSymLinks -MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
SSLEngine on
SSLCertificateFile /home/domain/crt
SSLCertificateKeyFile /home/domain/key
</VirtualHost>
ServerName*.domain.com
ServerAlias*.domain.com
DocumentRoot/home/domain/web
重新启动发动机
重写cond%{HTTP_HOST}^www.[NC]
重写cond%{HTTP\u HOST}^(phpmyadmin)\.domain\.com
重写cond%{REQUEST_URI}^phpmyadmin
重写规则^(.*)$/phpmyadmin[L]
重写cond%{HTTP\u HOST}^([^\.]+)\.domain\.com
重写规则^\/script2$/public/script2.php?参数1=%1[L]
重写cond%{HTTP\u HOST}^([^\.]+)\.domain\.com
重写规则^(.*)/public/script1.php?参数1=%1[L]
选项-索引包括noexec FollowSymLinks-多视图
允许超越所有
命令允许,拒绝
通融
斯伦金安
SSLCertificateFile/home/domain/crt
SSLCertificateKeyFile/home/domain/key
有什么想法吗?2关于以下方面的问题:
RewriteCond %{HTTP_HOST} !^www.* [NC]
RewriteCond %{HTTP_HOST} ^(phpmyadmin)\.domain\.com
RewriteCond %{REQUEST_URI} !^phpmyadmin
RewriteRule ^(.*)$ /phpmyadmin [L]
RewriteRule^(.*)$[L]
RewriteRule
不同,RewriteCond%{REQUEST_URI}
需要前面的斜杠,如下所示:
RewriteCond%{REQUEST\u URI}^/phpmyadmin
RewriteCond%{HTTP\u HOST}^www.[NC]
因为你的url永远不会以www开头,也不会以phpmyadmin开头。匹配
RewriteCond%{HTTP\u HOST}^(phpmyadmin)\.domain\.com
自动意味着非www匹配条件也为true也没有[R]标志,重定向规则将充当别名,这意味着phpmyadmin.domain.com在幕后以静默方式重定向到www.domain.com/phpmyadmin,但您的url不会更改。如果您确实希望在浏览器中看到url更改,请将[L]替换为[R=301,L](至少用于测试,因为当您可以看到重定向的方向时,它会更容易)