apache2 - как исключить псевдоним из правил перезаписи?

У меня есть настройки 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, а не по псевдониму (который игнорируется / игнорируется?).

Как настроить правило исключения, чтобы разрешить пропуск псевдонимов (даже если псевдоним настроен в другом файле?)

2 ответа

Решение

Исключите URI, содержащие "/phpmyadmin/", если вы не хотите, чтобы они перенаправлялись:

RewriteCond   %{REQUEST_URI}  !/phpmyadmin/.*

Или просто переместите декларацию своего псевдонима в каталог или местоположение

Alias /phpMyAdmin /var/(...)

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

По wa: используйте Location с URL ('/'), а не 'Directory'.

Другие вопросы по тегам