Ескі URL-ді жаңа, таза жолдарға қайта жазу

I have me .htaccess file happily rewriting things like /conferences/details/21 to /index.php?pages=conferences&var1=details&var2=21.

Бұл сайтты қадағалап отыратын URL бар, ол URL-мекенжайларын жаңартпаған сайттардан көптеген сілтемелерді көрсетеді (бұл жаңа сайтты қайта жасау)

http://www.domain.com/index.cfm?page=conference&intConferenceID=81

Және

http://www.domain.com/index.cfm?page=conference&intConferenceID=88&type=conference

Мен оларды /conferences/details/[жоғарыда көрсетілген сандық ID] деп қайта жазғым келеді.

Мен мұны көрдім:

RewriteRule ^index.cfm?page=conference&intConferenceID=(\d+)/?$ /conferences/details/$1 [L,NC,QSA]

Екінші мысалды елемеу. Дегенмен, маған index.cfm дегенді табу мүмкін емес.

/conferences/details/[ID] сілтемесіне жоғарыдағы пішімделген сілтемелерді (ID идентификаторларын өзгерту) қайта жазу үшін қандай қайта жазу ережесі қажет?

0

1 жауаптар

Сұрау жолын RewriteCond-ден шығарып алуға болады:

RewriteCond %{REQUEST_URI} ^/index.cfm
RewriteCond %{QUERY_STRING} page=(.+)&intConferenceID=([^&]+)
RewriteRule . /%1/details/%2 [L]

Not sure where the "details" comes from based on the /foo/bar/21 -> /index.php?f=foo&b=bar&arg=21 rewriting.

1
қосылды
Үлкен рахмет. details мынадай таза URL-ден келеді: /conferences/details/21 . Мен өз сұрағымды тиісті түрде редакцияладым.
қосылды автор Bojangles, көзі
Негізінен, RewriteRule сұрау жолы, жай жолды қайта жазады. Сұрау жолына сәйкестендіру үшін RewriteCond пайдалану керек және сол сәйкестікке%
қосылды автор Jon Lin, көзі