2017-02-08 8 views
0

Мне интересно, как настроить RegEx для перезаписи определенного URL-адреса, поэтому кажется, что запрошенный сайт находится в определенной папке. Я попробовал его с помощью ручного RewriteRules, но имел проблемы при использовании «/» в переписанном имени ... (Это вопрос №2: Почему я не могу использовать «/» в переписанных именах?)URL-Rewrite в .htaccess RegEx

I есть файлы с именами, как:

ga_filename.php или gt_filename.php

Эти файлы физически все в одном каталоге.

Текущий URL что-то вроде

www.whatever.de/index.php?content=ga_filename.php

Так что соответствует 2 начальных букв моих файлов (GA или GT) Я хочу URL-адрес, чтобы выглядеть как

www.whatever.de/ga/filename или www.whatever.de/gt/filename

что мне нужно регулярное выражение, которое читает первые 2 буквы после «= "(from? content =), cre загружает соответствующую папку и берет остальную часть имени файла после «_» (из ga_filename.php) с .php, удаленным как показанное имя файла в URL-адресе.

Надеюсь, я объяснил это понятным .. Любая помощь очень ценится.

ответ

0

Try ниже правило,

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([\w-]+)/([\w-]+)$ index.php?content=$1_$2.php [L] 
+0

Это не похоже на работу. Я забыл упомянуть, что эти файлы включены в index.php , поэтому фактический URL-адрес похож на www.whatever.de/index.php?content=ga_filename.php Я отредактировал свой вопрос. –

+0

Попробуйте изменить! –

0

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

RewriteEngine On 

# external redirect from actual URL to pretty one 
RewriteCond %{THE_REQUEST} \s/(?:index\.php)?\?content=(\w{2})_([^\s&.]+)\.php [NC] 
RewriteRule^/%1/%2? [R=301,L,NE] 

# internal forward from pretty URL to actual one 
RewriteRule ^(\w{2})/([^/.]+)/?$ index.php?content=$1_$2.php [L,QSA] 
+0

Это не работает. Я забыл упомянуть, что эти файлы включены в index.php , поэтому фактический URL-адрес похож на www.whatever.de/index.php?content=ga_filename.php Я отредактировал свой вопрос. –

+0

это фактически показывает только мой index.php, но без каких-либо включений и всех формирующих css и изображений отсутствует –

+0

Проблема image/css/js связана с вашим использованием относительных путей. Вы можете добавить это чуть ниже '' раздела HTML вашей страницы: '' для исправления. – anubhava