Intereting Posts
: Ошибка -> Слишком мало аргументов в sprintf (); получить результат от ssh2_exec Paypal в CodeIgniter Может ли Android загрузить любой тип события календаря? Если да, то что такое файловая структура? Как выполнить поиск по key => значение в многомерном массиве в PHP codeIgniter: потеря данных сеанса после входа в систему CSS не работает, когда я добавляю косую черту (/) в конце моего URL-адреса Как отображать ошибки для моего MySQLi-запроса? Получение единственного значения из одной строки с помощью Mysql / PHP PHP или Apache, кажется, кэшируют файлы, прочитанные через file_get_contents или включают (нежелательное поведение) Как я могу получить аудиофайл из XMLHttpRequest, который может быть декодирован decodeAudioData? PHP – Преобразование изображений в видео с помощью ffmpeg Решено: MAMP Php не может выполнить exec ('convert') после Homebrew ImageMagick install Можно ли использовать xdebug на Ubuntu? AngularJS: одновременный $ http get возвращает неверные данные в $ .each loop

.htaccess добавить динамические сегменты URL в существующее правило перезаписи

Поэтому у меня есть это правило

# Rewrite for account view RewriteRule ^([^/]+)/([^/]+)/?$ account.php?type=$1&user=$2 [NC,L] 

которые переводятся на http://www.site.com/user/s2xi

но теперь я хочу получить еще более творческий подход к URL-адресу и добавить к нему тему:

 http://www.site.com/user/s2xi/theme/slate/ 

так что я могу, например, получить доступ к файлу CSS для темы, мне просто нужно было бы ввести

 http://www.site.com/user/s2xi/theme/slate/css/slate.css 

как я могу изменить или добавить другой RewriteRule, чтобы получить результаты, которые я хочу?

также, как я мог бы применить и получить доступ к моим файлам тем с новым URL-адресом в моем PHP-коде?

мой текущий путь к моим темам – library/themes/users/slate с подпапками /css и /js

Моя попытка:

 # Rewrite for user theme location RewriteRule ^([^/]+)/([^/]+)/theme/([^/]+)/?$ account.php?type=$1&user=$2$theme=$3 [NC,L] 

Я предлагаю перенаправить все запросы в один файл, например index.php а затем получить URL-адрес с помощью $_SERVER['REQUEST_URI'] . Затем вы можете использовать эти данные и, например, взорвать его. Затем вы сможете динамически определять, какая страница будет загружена.

Вы можете использовать следующий код для перенаправления всех запросов на index.php :

 RewriteEngine on RewriteRule .* index.php 

Вы также можете исключить определенные типы файлов из перенаправления в этот файл PHP. Например, статический контент, такой как CSS, JavaScript и т. Д. Следующий код, например, исключает все файлы с расширением CSS, JS, PNG или JPG:

 RewriteEngine on RewriteRule !\.(css|js|png|jpg)$ index.php 

Чтобы исключить все существующие файлы, вы можете использовать следующий код:

 RewriteEngine on RewriteCond %{REQUEST_fileNAME} !-f RewriteRule .* index.php 

Вы можете поместить остальную часть пути в третий get parametar:

 RewriteRule ^ ([^ /] +) / ([^ /] +) /? (. *) $ Account.php? Type = $ 1 & user = $ 2 & rest_of_the_url = $ 3 [NC, L]

[РЕДАКТИРОВАТЬ]

Хорошо, для вас случай, я думаю, вы должны написать .htaccess перенаправить, так что для css и js-файла apache идет прямо к ним. Потому что обработка php будет ненужными накладными расходами, если вы не хотите проверять учетные данные пользователя или что-то в этом роде.

 RewriteRule ^ ([^ /] +) / ([^ /] +) / theme / ([^ /] +) / (. + \. (?: css | js | png | jpg)) $ / library / themes / users / $ 3 / $ 4 [NC, L]