Заставьте mod_alias работать с mod_rewrite
Правило mod_alias:
/water /local/path1/water
Целевые URL:
http://www.mysite.com/water/css/style.css
http://www.mysite.com/water/js/java.js
Фактические URL:
http://www.mysite.com/water/css.php?src=style.css
http://www.mysite.com/water/js.php?src=java.js
Мод переписать правило:
RewriteEngine on
RewriteCond /local/path1/water%{REQUEST_URI} !-d
RewriteCond /local/path1/water%{REQUEST_URI} !-f
RewriteRule ^/water/css/([^/]+)$ /local/path1/water/css.php?src=$1 [PT]
RewriteRule ^/water/js/([^/]+)$ /local/path1/water/js.php?src=$1 [PT]
Проблема: это не работает, и я получаю 404 ошибки, и ошибка говорит этот скрипт /www/mysite.com/htdocs/css.php
не найден или не может начать
1 ответ
1. У меня нет большого опыта работы с mod_alias .. но я думаю, что вы делаете неправильно, переписав /local/path1/water/
- mod_rewrite выполняет перезапись URL, поэтому здесь также должен быть URL.
2. Я предполагаю, что /local/path1/water%{REQUEST_URI}
является правильной конструкцией и ссылается на правильный файл. Но... вы применяете их (эти 2 условия) только к первому правилу перезаписи...
3. Как я понимаю, эти правила находятся в контексте конфигурации сервера / VirtualHost, а не в.htaccess.
Взяв все это вместе, вы должны попробовать это вместо:
RewriteEngine on
RewriteCond /local/path1/water%{REQUEST_URI} !-d
RewriteCond /local/path1/water%{REQUEST_URI} !-f
RewriteRule ^/water/css/([^/]+\.css)$ /water/css.php?src=$1 [L,PT]
RewriteCond /local/path1/water%{REQUEST_URI} !-d
RewriteCond /local/path1/water%{REQUEST_URI} !-f
RewriteRule ^/water/js/([^/]+\.js)$ /water/js.php?src=$1 [L,PT]