Переписать запрос
http://mywebsite.net/aaa-bbbb/cccc
внутренне
/mydir/ccc?x=aaa&y=bbbb
вам нужны такие правила перезаписи:
RewriteEngine on
RewriteRule ^([a-z]+)-([a-z]+)/([a-z]+)$ /mydir/$3?x=$1&y=$2 [L]
Примечание: вышеупомянутое правило имеет синтаксис для использования внутри конфигурации хоста http-серверов. Если вы действительно хотите использовать файл в .htaccess
стиле вместо этого вам нужно использовать немного измененную синтаксис, так как эти файлы работают на относительных путей:
RewriteEngine on
RewriteRule ^([a-z]+)-([a-z]+)/([a-z]+)$ mydir/$3?x=$1&y=$2 [L]
Вы можете обнаружить в переписывания цели недостающую /
. Файл стиля .htaccess
должен находиться внутри папки с папкой mydir
, чтобы она работала. Также интерпретация таких файлов должна быть включена вообще в конфигурации http-сервера.
Общее примечание: .htaccess
файлы стилей, как известно, подвержены ошибкам, трудно отлаживать и они действительно замедлять сервер HTTP ничего. Они предлагаются только в качестве последнего варианта для тех , а не, имеющих доступ к конфигурации хоста http-серверов. Так, например, для чит-хостинг-провайдеров. В общем, вы должны всегда предпочитают размещать такие правила внутри самой конфигурации хоста.
И «но это не работает» означает, что именно? Вы получили сообщение об ошибке? Неправильное перенаправление? Ничего не происходит вообще? Уничтожает ли вселенная? – arkascha
У меня ошибка 404. – philou13010
И ваш файл журнала ошибок HTTP-серверов содержит запись для этого запроса? – arkascha