apache2 - 如何从重写规则中排除别名?

apache2 - 如何从重写规则中排除别名?

我已经在 Debian 上的 Apache2 上设置了 mod_rewrite 和 mod_alias(在测试服务器上)。

我有以下重写代码/etc/apache2/sites-available/default

<Directory />
  Options FollowSymLinks
  AllowOverride All
  RewriteEngine on
  RewriteCond %{REQUEST_URI} !\.(php|html|css|js|gif|png|jpe?g)$
  RewriteRule (.*)$ /index.php [L]
</Directory>

apt-get install phpmyadmin我有以下别名代码,它是从 phpmyadmin 包(通过 加载并位于)默认设置的/etc/apache2/conf.d/phpmyadmin.conf

Alias /phpmyadmin /usr/share/phpmyadmin

每次我加载http://my.test.server/phpmyadmin,它去http://my.test.server/index.php而不是别名(被绕过/忽略了?)。

如何设置排除规则以允许别名通过(即使别名是在不同的文件中设置的?)

答案1

如果不想重定向,请排除包含“/phpmyadmin/”的 URI:

RewriteCond   %{REQUEST_URI}  !/phpmyadmin/.*

答案2

或者只需将别名声明移到目录或位置之前

Alias /phpMyAdmin /var/(...)

<Location />
    RewriteEngine on
    # (...)
</Location>

按照 wa:使用带有 url ('/') 的位置,而不是“目录”。

相关内容