2013-05-09 4 views
1

Я хотел бы сделать четыре вещи с апача mod_rewrite:SEO дружественных, не WWW, скрытый index.php URL

  1. Удалить WWW

    http://www.example.com/ >>> http://example.com/ 
    
  2. Удалить index.php

    http://example.com/index.php >>> http://example.com/ 
    
  3. Rewrite URI

    http://example.com/index.php?rewrite=request >>> http://example.com/request 
    
  4. Снимите последний слеш

    http://example.com/request/ >>> http://example.com/request 
    

Я прочитал много примеров, но ни один из них не работал должным образом.

Edit:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteCond %{HTTP_HOST} !^example\.com 
RewriteRule (.*) http://example.com/$1 [R=301,L] 

RewriteRule ^([^/\.]+)/$ http://%{HTTP_HOST}/$1 [R=301,L] 
RewriteRule ^([^/\.]+)$ index.php?rewrite=$1 [L] 
</IfModule> 

Я с помощью этого прямо сейчас, но это не достаточно. Благодаря

+0

хорошо, показывают нам, что вы пробовали и что не работает. Более того, вам действительно нужно использовать скрипт php router для перезаписи URL. Он оставил бы конфигурацию вашего Apache минимальной и чистой, и ее легче поддерживать. – mpm

ответ

0
RewriteEngine On 
RewriteCond %{HTTP_HOST} !^example\.com 
RewriteRule (.*)http://www.example.com/$1 [R=301,L] 


RewriteRule ^([^/\.]+)/$ http:// %{HTTP_HOST}/$1 [R=301,L] 
RewriteRule ^([^/\.]+)$ index.php?rewrite=$1 [L] 

или

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ index\.php\ HTTP 
RewriteRule ^index\.php$ http:// www.example.com/ [R=301,L] 

с апача mod_rewrite: