1

分解すると、これが私のサイトマップの外観です。

http://website.com/home
http://website.com/contact
http://website.com/support

index.php ハンドラーで GET ステートメントを処理する index.php?home、index.php?contact、および index.php?support

現在、私の .htaccess は次のようになっています。

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI}  /([^/]+)/?$  [NC]
RewriteRule .*   index.php?%1  [L]

これまでのところ、これはうまく機能しますが、制限があります。PHP で設計したミニブログを統合しています。これは、クエリ文字列を次のように受け入れます。

http://site.com/blog.php?y=2013&m=02&d=12&title=welcome-to-site-blog

ここで、サイトのルート ファイル構造を保持し、ブログ ファイル構造も統合したいと考えています。うまくいけば、次のようになります。

http://site.com/2013/02/12/welcome-to-site-blog

どんな助けでも素晴らしいでしょう。条件文が必要になることは理解していますが、htaccess の経験はほとんどありません。

前もって感謝します、クリス

4

1 に答える 1

1

これを試すことができます:

Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI}   !blog\.php                           [NC]
RewriteCond %{REQUEST_URI}   ^/([^/]+)/([^/]+)/([^/]+)/([^/]+)/?  [NC]
RewriteRule .  blog.php?key1=%1&key2=%2&key3=%3&key4=%4         [L,NC]

サイレント マップ

http://site.com/var1/var2/var3/var4

に:

http://site.com/blog.php?key1=var1&key2=var2&key3=var3&key4=var4

すべてのvarN文字列は可変であると見なされますが、スクリプト名blog.phpは固定されていますが、任意の名前にすることができます。変更された場合は、ルール セット内のすべてのインスタンスを置き換えます。

永続的で目に見えるリダイレクトの場合は、 に置き換え[L,NC]ます[R=301,L,NC]

于 2013-02-12T20:51:27.197 に答える