Mod_rewrite как удалить сегмент URI - PullRequest
0 голосов
/ 25 августа 2011

У меня есть несколько языков на моей веб-странице.Вот примеры ссылок:

http://myweb.com/en/page_load/about_us
http://myweb.com/en/page_load/testing

http://myweb.com/de/page_load/about_us
http://myweb.com/de/page_load/testing

Я хочу сделать его короче, как это:

http://myweb.com/en/about_us
http://myweb.com/en/testing

http://myweb.com/de/about_us
http://myweb.com/de/testing

В настоящее время у меня есть это в моем файле .htaccess:

RewriteEngine On
RewriteCond $1 !^(index\.php|images|public|css|blogg|img|captcha|robots\.txt|sitemap.xml|resources)
RewriteRule ^(.*)$ /index.php/$1 [L]

Есть предложения?

Ответы [ 2 ]

1 голос
/ 25 августа 2011

Вы можете сделать это с помощью встроенной маршрутизации CodeIgniter.Попробуйте что-то подобное в вашем routes.php файле конфигурации.

$route['en/page_load/:any'] = "en/$1";
$route['de/page_load/:any'] = "de/$1";

Это должно дать вам то, что вы ищете.

0 голосов
/ 25 августа 2011

Если вы просто хотите удалить часть page_load, вы можете просто сделать:

RewriteRule ^(.*)/page_load/(.*)$ $1/$2 [L]

Если вы хотите объединить оба правила, я рекомендую сначала использовать REQUEST_URI в качестве RewriteCond переменная (вместо $1, которая зависит от RewriteRule), а также, если возможно, указывать условия для положительных случаев вместо отрицательных (предпочитайте не использовать ! для условий).Я думаю, что этот способ будет более ремонтопригодным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...