2014-01-15 2 views
2

더 효율적인 방법이 있습니까?htaccess가 밑줄을 하이픈으로 바꾸기

마지막 /(.*)$은 내가 사용하는 데 신경 쓰지 않는 ID입니다. 그 전에는 뭐야?

RewriteRule ^about-us/news-room/(.*)_(.*)_(.*)_(.*)_(.*)_(.*)_(.*)_(.*)_(.*)_(.*)/(.*)$ index.php?go=/news/press-releases/$1-$2-$3-$4-$5-$6-$7-$8-$9-$10 [NC] 
RewriteRule ^about-us/news-room/(.*)_(.*)_(.*)_(.*)_(.*)_(.*)_(.*)_(.*)_(.*)/(.*)$ index.php?go=/news/press-releases/$1-$2-$3-$4-$5-$6-$7-$8-$9 [NC] 
RewriteRule ^about-us/news-room/(.*)_(.*)_(.*)_(.*)_(.*)_(.*)_(.*)_(.*)/(.*)$ index.php?go=/news/press-releases/$1-$2-$3-$4-$5-$6-$7-$8 [NC] 
RewriteRule ^about-us/news-room/(.*)_(.*)_(.*)_(.*)_(.*)_(.*)_(.*)/(.*)$ index.php?go=/news/press-releases/$1-$2-$3-$4-$5-$6-$7 [NC] 
RewriteRule ^about-us/news-room/(.*)_(.*)_(.*)_(.*)_(.*)_(.*)/(.*)$ index.php?go=/news/press-releases/$1-$2-$3-$4-$5-$6 [NC] 
RewriteRule ^about-us/news-room/(.*)_(.*)_(.*)_(.*)_(.*)/(.*)$ index.php?go=/news/press-releases/$1-$2-$3-$4-$5 [NC] 
RewriteRule ^about-us/news-room/(.*)_(.*)_(.*)_(.*)/(.*)$ index.php?go=/news/press-releases/$1-$2-$3-$4 [NC] 
RewriteRule ^about-us/news-room/(.*)_(.*)_(.*)/(.*)$ index.php?go=/news/press-releases/$1-$2-$3 [NC] 
RewriteRule ^about-us/news-room/(.*)_(.*)/(.*)$ index.php?go=/news/press-releases/$1-$2 [NC] 

온라인 솔루션을 찾았지만 [N] 플래그를 사용하는 데 혼란 스러울 것 같습니까? 여기도 확실하지 않습니다. 누구든지이 일을하는 더 효율적인 방법을 설명 할 수 있습니까?

답변

1

당신은이를 위해 내부적으로 재 작성 엔진 루프를 할 수 있습니다

RewriteRule ^about-us/news-room/(.+)/(.*)$ index.php?go=/news/press-releases/$1 [L,NC] 

RewriteCond %{QUERY_STRING} ^go=/news/press-releases/(.*)_(.*)$ 
RewriteRule ^index\.php$ /index.php?go=/news/press-releases/%1-%2 [L] 

첫 번째 규칙은되는 index.php 요청을 전송하고, 두 번째 규칙은 밑줄을 제거하고 대시로 대체합니다. 다시 쓰기 엔진이 반복되므로 순환 한계에 도달하거나 모든 밑줄이 사라질 때까지 규칙 적용이 계속됩니다.

+0

다른 모든 시도가 내 웹 서버를 고장 나게했기 때문에 그것이 어떻게 반복되는지 궁금합니다. 이제 규칙이 어떻게 기반을두고 조건이 설정되는지 살펴 봅니다. 아주 좋은 답변을 주셔서 감사합니다. – Paul

관련 문제