2015-09-04 5 views
1

Я пытаюсь создать файл .htaccess, который в основном является подстановочной установкой. У меня есть структура папок, как показано ниже..htaccess и подкаталоги

public_html/sites is the root directory and in this folder there are two sub directories: 

public_html/sites/brand (there are many brand folders, just used brand as example) 
public_html/sites/brand/event (there are many events in a brand folder, just used event as example) 

I have files in each event folder such as index.php and media.php 

Я неудачно переписываю медиа-страницу в структуру URL, которую я ищу. Ниже мой текущий .htaccess файл.

RewriteEngine On 
RewriteRule ^media/([^/]*)$ /media.php?unqid=$1 [L] 

Таким образом, ожидаемый URL-адрес, который я хочу, это/testbrand/4177/media/123456. У меня будут серверные бренды и несколько событий под каждым брендом, поэтому мне, возможно, нужен какой-то шаблон. Любая помощь приветствуется. Заранее спасибо.

+0

у меня будет несколько фирменных папок, я просто показал один в качестве примера. Каталог создается «на лету» каждый раз, когда новый бренд добавляется в нашу систему. В папке сайтов у меня более 30 брендов в это время, и все они имеют одну и ту же структуру папок. Из-за того, что они создаются «на лету», мне нужен какой-то шаблон, который создается систематически. – NUGGET

+0

ну в основном я хочу, чтобы media.php? Unqmid = 123456 в папке с событием переписывался в/media/123456. Итак, в основном media.php? Media.php? Unqmid = 123456 превращается в testbrand/4177/media/123456, но мне нужен этот .htaccess переписывать для работы для всех брендов и событий, а не только для testbrand и eventid 4177. – NUGGET

+0

4177 является eventid (подкаталог testbrand), testbrand является подкаталогом сайтов – NUGGET

ответ

0

Вы можете использовать это правило в корневом .htaccess:

RewriteEngine On 

RewriteRule ^([^/]+/[^/]+)/media/(\d+)/?$ $1/media.php?unqid=$2 [L,NC,QSA] 

Это загрузит /testbrand/4177/media.php?unqid=123456 при запросе /testbrand/4177/media/123456

+0

Спасибо за помощь, он работает по большей части, однако $ _SERVER ['QUERY_STRING'] передается как unqmid = testbrand/4177 вместо любой из них приветствуется. Благодарю. – NUGGET

+0

Ах, моя ошибка должна была быть «$ 2» в цель. Попробуйте мое обновленное правило. – anubhava

+1

Спасибо, что работал, как я и хотел. – NUGGET

2

Если вы хотели бы иметь URL, как этот

http://example.com/testbrand/4177/media/123456 

И ваши бренды являются динамическими, то ваш переписан долженвероятно взгляд что-то подобное.

RewriteRule ^(?:[^/]+)/(?:[0-9]+)/media/([0-9]+)/?$ /media.php?unqid=$1 [L] 

на основе текущего внутреннего URL вы будете только посылать на номер документа, который приходит после /media/ на PHP. Если у вас есть дополнительная информация, которую вам нужно отправить, вам необходимо обновить свои внутренние параметры URI.

Смежные вопросы