2012-01-11 14 views
1

Хорошо вот мой адрес:Как заменить подчеркивание тире с помощью htaccess?

http://example.com/home/process_login

Я хотел бы заменить подчеркивание с тиром.

Таким образом, http://example.com/home/process-login перейдет к вышеуказанному URL-адресу, но он все равно будет указывать process-login в строке URL.

Надеюсь, это имеет смысл. Единственные решения, которые я нашел, были перенаправлены, и я не хочу перенаправления. Я хочу, чтобы это прочитало, как я изложил.

+0

Пожалуйста, используйте поиск: [\ [mod-rewrite \] подчеркивание hyp ru] (http://stackoverflow.com/search?q=%5Bmod-rewrite%5D+underscore+hyphen&submit=search) или [\ [mod-rewrite \] черточка underscore] (http://stackoverflow.com/search ? q =% 5Bmod-rewrite% 5D + underscore + dash & submit = search) – Gumbo

ответ

2

Используйте этот код:

Options +FollowSymLinks -MultiViews 
RewriteEngine on 

RewriteRule ^(home/)(.*)-(.*)$ $1$2_$3 [L,NC] 

UPDATE: на основе ваших комментариев ниже

Options +FollowSymLinks -MultiViews 
RewriteEngine on 

RewriteCond %{REQUEST_URI} !^/?(coremeasures/index\.php/|index\.php|home/|images/|robots\.txt) 
RewriteRule ^(.*)$ /coremeasures/index.php/$1 [L] 
RewriteRule ^(home/)(.*)-(.*)$ $1$2_$3 [L,NC] 

UPDATE 2: на основе ваших комментариев ниже

Options +FollowSymLinks -MultiViews 
RewriteEngine on 

RewriteRule ^(?!(coremeasures/index\.php/|index\.php|home/|images/|robots\.txt))(.*)$ coremeasures/index.php/$1 [L] 
RewriteRule ^(home/)(.*)-(.*)$ $1$2_$3 [L,NC] 
+0

Вот мой .htaccess, я получаю 404 для 'http: // example.com/home/process-login' ' Опции + FollowSymLinks -MultiViews RewriteEngine на RewriteCond $ 1^(индекс \ .php | изображений | роботов \ .txt)! RewriteRule^(. *) $ /coremeasures/index.php/$1 [L] RewriteRule^(дом /) (. *) - (. *) $ $ 1 $ 2_ $ 3 [L, NC] ' –

+0

У вашего кода есть некоторые проблемы, я исправил его и обновил свой ответ. Код проверки Pls в разделе ** ОБНОВЛЕНИЕ ** выше. – anubhava

+0

Хорошо, я попробовал обновить, теперь я получаю 500. –

Смежные вопросы