我已经在 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 ('/') 的位置,而不是“目录”。