httpd.conf 更改为允许 www.mysite.com 和 www.mysite.com/mantis 和 phpmyadmin?

httpd.conf 更改为允许 www.mysite.com 和 www.mysite.com/mantis 和 phpmyadmin?

我有一个 php 应用程序,用于放置:

~/public_html/beta/

以及 mantis 和 phpmyadmin 中的:

~/public_html/mantis/
~/public_html/phpmyadmin/

该应用程序曾经被这样访问:

www.mysite.com/beta/

其他的如下:

www.mysite.com/mantis
www.mysite.com/phpmyadmin 

我们必须对我们的应用程序进行某些更改,并且需要将应用程序从 /beta/ 转移到 / (即文档根目录)。

我不太愿意将 mantis、phpmyadmin 作为 public_html 中的子文件夹 - 我担心它们可能会被我/其他管理员意外删除/篡改。

我如何设置我的 httpd.conf 以便可以继续以以下方式访问我的 mantis 和 phpmyadmin:

www.mysite.com/mantis
www.mysite.com/phpmyadmin 

并将“申请”保存在:

www.mysite.com


我当前的 httpd.conf 内容如下:

<VirtualHost IPADDRESS:80>
    ServerAlias MYSITE.com
    DocumentRoot /var/www/html
    ServerName MYSITE.com
    UseCanonicalName On

 <IfModule mod_rewrite.c>
    RewriteEngine On

RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
...

答案1

您需要将它们保存在主域下的文件夹中,还是可以将它们放在子域中?

您可以将应用程序、mantis 和 phpmyadmin 放在单独的文件夹中,为每个文件夹设置 3 个虚拟域,例如:

<VirtualHost *:80>
    ServerName MYSITE.com
    ServerAlias www.MYSITE.com
    DocumentRoot /var/www/html/public_html
#etc

<VirtualHost *:80>
    ServerName phpmyadmin.MYSITE.com
    DocumentRoot /var/www/html/phpmyadmin
#etc

<VirtualHost *:80>
    ServerName mantis.MYSITE.com
    DocumentRoot /var/www/html/mantis
#etc

因此应用程序直接进入public_html,phpmyadmin进入/var/www/html/phpmyadmin,mantis进入/var/www/html/mantis。

然后只需设置附加 DNS 并使用以下地址访问网站:www.mysite.com phpmyadmin.mysite.com mantis.mysite.com

答案2

你应该能够在 .htaccess 中执行重写规则,类似于 RewriteEngine

RewriteBase /
RewriteRule ^(?!mantis)(?!phpmyadmin)(.*)$ beta/$1 [L]

(除非它在 ​​ether mantis 或 phpmyadmin 中启动,否则这会将每个请求重定向到 /beta/ 子文件夹,而且它是从内存中完成的,所以如果您收到语法错误,那只是我对正则表达式的无能)

相关内容