У меня установлены mod_rewrite и mod_alias на Apache2 на Debian (на тестовом сервере).
У меня есть следующий код перезаписи в /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>
У меня есть следующий код псевдонима, который по умолчанию устанавливается из пакета phpmyadmin (загружается через apt-get install phpmyadmin
и расположен в /etc/apache2/conf.d/phpmyadmin.conf
):
Alias /phpmyadmin /usr/share/phpmyadmin
Каждый раз, когда я загружаю http: //my.test.server/phpmyadmin, это идет в http: //my.test.server/index.php а не псевдоним (который пропускается / игнорируется?).
Как настроить правило исключения, чтобы разрешить прохождение псевдонимов (даже если псевдоним настроен в другом файле?)
Исключите URI, содержащие "/ phpmyadmin /", если вы не хотите, чтобы они перенаправлялись:
RewriteCond %{REQUEST_URI} !/phpmyadmin/.*
Или просто переместите объявление своего псевдонима перед Directory или Location
Alias /phpMyAdmin /var/(...)
<Location />
RewriteEngine on
# (...)
</Location>
К слову, используйте Location с url ('/'), а не 'Directory'.