У меня есть файл структуры, как это:mod_rewrite на определенном REQUEST_URI
ROOT
|----app/
|----app/init.php
|----public/
|----public/index.php
|----public/img/
|----public/js/
|----.htaccess
.htaccess
«s правила будут перенаправлять все REQUEST_URI
к app/init.php
RewriteCond %{REQUEST_URI} !\.(css|js|ttf|woff|woff2|eot|otf|svg|png|jpg)$
RewriteCond public/%{REQUEST_FILENAME} !-f
RewriteCond public/%{REQUEST_FILENAME} !-d
RewriteRule ^([^?]*)$ app/init.php [NC,L,QSA]
Тогда app/init.php
будет использовать require_once
, чтобы получить соответствующий .html/.php
в папке public
.
Это прекрасно работает; весь исключенный файл в .htaccess
будет называться как таковой public/...
шаблон пути в public/index.php
.
Примеры:
- CSS
<link rel="stylesheet" href="public/css/layout.css">
- Изображение
<img src="public/img/abc.jpg" alt="">
Однако, я не хочу, чтобы добавить public/
префикс на всех файле я исключенного .htaccess
I попытался добавить
RewriteCond %{REQUEST_URI} \.(jpg)$
RewriteRule ^([^?]*)$ public/$1 [NC]
Однако, это не работает. Точнее, когда я назвал это img/abc.jpg
в файле public/index.php
, он возвращает 500 (Internal Server Error). Я предполагаю, что это неправильно с перенаправлением, но я не уверен.
Вопрос: Как я могу позвонить css
или img
или т.д .. те файлы без префикса public/
в пути?
я, наконец, только перенаправить '.php' в' init.php' страницы, так что я не нужно заботиться, что делают другие – andrew