Мне нужен mod_rewrite для повторного сопоставления входящего URL-адреса, чтобы он был пойман AliasMatch
.
RewriteCond %{REQUEST_URI} ^/app/(.*)$
RewriteRule ^/app/(.*) ^/dev-dave/app/$1
RewriteCond %{REQUEST_URI} ^/static/(.*)$
RewriteRule ^/static/(.*) ^/dev-dave/static/$1
AliasMatch ^/(.*)/static/(.*)$ /var/www/html/cosmos/$1/dist/static/$2
AliasMatch ^/(.*)/app/(.*)$ /var/www/html/cosmos/$1/dist/index.html
<Directory /var/www/html/cosmos>
AllowOverride None
Require all granted
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
</IfModule>
</Directory>
Это возможно? Я не могу заставить это работать.
В основном конфигурация сервера вы должны использовать PT
(passthrough
) флаг на RewriteRule
директивы, которые вы хотите поймать AliasMatch
. (The PT
флаг подразумевается в каталог context, поэтому он не потребуется для директив, которые появляются позже в вашем файле, в <Directory>
контейнер.)
Из Документы Apache для PT
флаг:
По умолчанию предполагается, что целью (или строкой подстановки) в RewriteRule является путь к файлу. Использование флага [PT] приводит к тому, что вместо этого он обрабатывается как URI. Другими словами, использование флага [PT] приводит к тому, что результат RewriteRule передается обратно через сопоставление URL-адресов, чтобы сопоставления на основе местоположения, такие как Alias, Redirect или ScriptAlias, например, могли иметь шанс вступить в силу.
Если, например, у вас есть псевдоним для / icons и на него указывает RewriteRule, вам следует используйте флаг [PT], чтобы убедиться, что псевдоним оценивается.
RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d
В стороне: Ваш передний контроллер, определенный позже, отсутствует RewriteRule
директива ?! Так что в текущем состоянии это ничего не сделает. Однако он также подвержен ошибкам ... если вы позже добавили RewriteRule
директива позже в <Directory>
контейнер, затем предыдущий условия будет (неожиданно) применен.