RewriteRule или 301 редирект - PullRequest
0 голосов
/ 03 февраля 2012

Я унаследовал веб-сайт от моего друга, что было сделано в ColdFusion.Все URL-адреса имеют вид: index.cfm, filename.cfm?xid=MN

Я сделал простые правила, как это:

RewriteRule filename.cfm filename.php

, и он сделал работу для файлов верхнего уровня.Но сейчас я работаю над файлами второго уровня, и у них есть ссылки вроде этого: filename.cfm?id=wanted&xid=MN, который предполагает открыть другую страницу, проблема в том, что когда я пишу это:Я знаю, что это глупый вопрос для опытного разработчика, но я новичок и мне нужна помощь.Пожалуйста, предложите решение.Это очень ценится.

The pattern of those urls:
I have                                 I need
/fileone.cfm?id=overview&xid=MN        /folderone/overview.php
/fileone.cfm?id=wanted&xid=MN          /folderone/wanted.php
/fileone.cfm?id=services&xid=MN        /folderone/services.php


/filetwo.cfm?id=overview&xid=MN        /folderwto/overview.php
/filetwo.cfm?id=wanted&xid=MN          /folderwto/wanted.php
/filetwo.cfm?id=services&xid=MN        /folderwto/services.php

И так далее ...

1 Ответ

0 голосов
/ 04 февраля 2012

Добавьте следующее в файл .htaccess в корневом каталоге вашего сайта.

RewriteEngine on
RewriteBase / 

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /file(one|two)\.cfm\?id=([^&]+)&xid=MN [NC]  
RewriteRule ^ /folder%1/%2.php? [L] 

Это будет работать для всех запрошенных вами переписываний, например, когда пользователь запросит /fileone.cfm?id=overview&xid=MN, он получит /folderone/overview.php.

Если вы хотите, чтобы 301 перенаправлял пользователей, измените последнее правило на

RewriteRule ^ /folder%1/%2.php? [L,R=301] 
...