Apache-2.2
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>
我有以下別名程式碼,預設情況下是從 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而不是別名(被繞過/忽略?)。
如何設置排除規則以允許別名通過(即使別名設置在不同的文件中?)
如果您不希望重定向包含“/phpmyadmin/”的 URI,請排除它們:
RewriteCond %{REQUEST_URI} !/phpmyadmin/.*
或者只是將您的別名聲明移動到目錄或位置之前
Alias /phpMyAdmin /var/(...) <Location /> RewriteEngine on # (...) </Location>
順便說一句:使用帶有 url (’/’) 的 Location,而不是 ‘Directory’。