2009-05-25 3 views
1

Ugh .. mod_rewrite заставляет меня чувствовать себя глупо. Я просто еще не обмотал свой мозг. :/Помощь с mod_rewrite правило для динамического url

У меня есть этот URL:

http://example.com/a/name/

... что я хочу указать здесь:

http://example.com/a/index.php?id=name

... где name является то, что получение передается index.php как аргумент id.

Все, что я пытался результаты либо 404 или 500 .. :(

ответ

1

Чтобы начать Вас:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !index.php 
RewriteRule ^/?a/([^/]+)/?$ /a/index.php?id=$1 [QSA,L] 

Если один переписан учебник не работает для вас, try another.

Edit: исключены index.php согласно предложению илистый в

+0

Результатов в 500 ошибках с этим: Запрос превысил лимит 10 внутренних переадресовывает из-за вероятную ошибку конфигурации. – Ian

+0

Ах, это только потому, что он пытается переписать переписанный URL-адрес. Если я начну, скажем^/? Aa /, то он отлично работает. Благодаря! – Ian

+1

@Ian Вы должны исключить файл, в который вы переписываете запрос. – Gumbo

1

Может быть что-то вдоль линий

 
RewriteEngine on 
RewriteBase /a/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)/?$ index.php?id=$1 [L,QSA] 

сделал бы трюк.

1

Я предлагаю вам взглянуть на этот URL:

http://www.dracos.co.uk/code/apache-rewrite-problem/

Представленные решения будут работать, но есть некоторые оговорки объяснены в URL, в основном в отношении? и # в самих URL.

2

Если вы хотите, чтобы конечная косая черта была необязательной, вы должны исключить файл, в который вы переписываете запрос. В противном случае у вас будет приятная бесконечная рекурсия.

RewriteEngine on 
RewriteCond %{REQUEST_URI} !^/a/index\.php$ 
RewriteRule ^/a/([^/]+)/?$ /a/index.php?id=$1 [L] 

Здесь любой запрос, который начинается с /a/… но не /a/index.php переписывается /a/index.php.

Но если косая черта является обязательной, нет необходимости исключать файл назначения:

RewriteEngine on 
RewriteRule ^/a/([^/]+)/$ /a/index.php?id=$1 [L] 
Смежные вопросы