如何在本地域名网站 www.mydomain.com/website 中重定向到 www.mydomain.com

如何在本地域名网站 www.mydomain.com/website 中重定向到 www.mydomain.com

我在本地服务器上安装了简单的 Web 服务 (MediaWiki)。在我的 DSN 服务器中,我已将 IP 地址设置为此 Web 服务器,因此现在当我在浏览器中调用时(这仅在我的域 IP 范围内有效),www.mydomain.com我会访问 Apache 网站,当我调用www.mydomain.com/mediawiki时,我的 mediawiki 网站就会打开。

我可以在浏览器中实现这一点吗(我仍然希望它只在域范围内工作)我称之为www.mydomain.com打开-重定向到www.mydomain.com/mediawiki

答案1

为此,您需要更改000-default.conf位于的默认虚拟主机配置文件的内容/etc/apache2/sites-available/。或者您可以创建一个新的虚拟主机配置文件,然后必须禁用000-default.conf并启用新的配置文件。

假设您决定创建一个新的 VH 配置文件,我们将其命名为my.wiki.org.conf,它应该位于/etc/apache2/sites-available/并且其内容应该是这样的:

<VirtualHost *:80>

    ServerName my.wiki.org
    ServerAdmin [email protected]

    # According MWiki Manual:Security
    php_flag register_globals off

    ErrorLog ${APACHE_LOG_DIR}/my.wiki.org.error.log
    CustomLog ${APACHE_LOG_DIR}/my.wiki.org.access.log combined

    <FilesMatch "\.(cgi|shtml|phtml|php)$">
        SSLOptions +StdEnvVars
    </FilesMatch>

    <Directory /usr/lib/cgi-bin>
        SSLOptions +StdEnvVars
    </Directory>

    DocumentRoot "/var/www/my.wiki.org"

    <Directory "/var/www/my.wiki.org">  
        Options None FollowSymLinks
        #Allow .htaccess:
        AllowOverride All
        Require all granted
    </Directory>

    # According to MWiki Manual:Security
    <Directory "/var/www/my.wiki.org/images">
        Options -Indexes
        # Allow .htaccess files
        AllowOverride All
        # Serve HTML as plaintext, don't execute SHTML
        AddType text/plain .html .htm .shtml .php .phtml .php5
        # Don't run arbitrary PHP code.
        php_admin_flag engine off
        # If you've other scripting languages, disable them too.
    </Directory>

    # According to MWiki Manual:Security
    <Directory "/var/www/my.wiki.org/images/deleted">
        Deny from all           
        AllowOverride AuthConfig Limit
        Require local
    </Directory>

</VirtualHost>

然后禁用000-default.conf、启用my.wiki.org.conf并重新启动(或重新加载)Apache 的配置:

sudo a2dissite 000-default.conf
sudo a2ensite my.wiki.org.conf
sudo systemctl restart apache2.service

这里的关键点是你改变了DocumentRoot虚拟主机的 MediaWiki 安装目录。我假设此目录为/var/www/my.wiki.org


此外,如果您想通过my.wiki.org/wiki/Article_name而不是 来提供您的 wiki 文章,您可以在目录中的文件my.wiki.org/index.php/Article_name中添加以下几行:.htaccessDocumentRoot

<ifModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^/?wiki(/.*)?$ %{DOCUMENT_ROOT}/index.php [L]

    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
    RewriteRule ^/?images/thumb/[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/([0-9]+)px-.*$ %{DOCUMENT_ROOT}/thumb.php?f=$1&width=$2 [L,QSA,B]

    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
    RewriteRule ^/?images/thumb/archive/[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/([0-9]+)px-.*$ %{DOCUMENT_ROOT}/thumb.php?f=$1&width=$2&archived=1 [L,QSA,B]
</ifModule>

并按如下方式修改LocalSettings.php

$wgScriptPath = "";
$wgScriptExtension = ".php";
$wgArticlePath = "/wiki/$1";

关于本附加部分的参考资料:


为了测试目的,您可以在文件中添加几行代码,如下所示,/etc/hosts以便通过 FDQN 访问您的 wiki,而不是本地主机或 LAN 中的 IP 地址(更多细节):

127.0.0.1 localhost my.wiki.org  # access my.wiki.org from the same machine
192.168.0.150 my.wiki.org        # access my.wiki.org that is hosted on another LAN machine with IP 192.168.0.150

对于公共服务器还有一个安全注意事项:

另请阅读:

相关内容