1

私のサイトには、次のような複数のURLがあります。

メインページ:

mysite.com
mysite.com/?content=about
mysite.com/?content=posts&page=2

サブフォルダー:

mysite.com/subsite/
mysite.com/subsite/?content=about
mysite.com/subsite2/?content=posts&page=2

これらを次のようにクリーンアップしたいと思います。

mysite.com/about/
mysite.com/posts/2

mysite.com/subsite/about/
mysite.com/subsite/posts/2

これで、1つの変数と他のいくつかの単純なものにmod_rewriteを使用できるようになりましたが、これを実現する方法が正確にはわかりません。私が使用するとき:

RewriteRule ^([a-z]+)/([a-z0-9-]+)/?$ /?content=$1&page=$2 [L]

URLのセクションを変数として認識しますが、サブサイトも変数として認識し、「コンテンツ」の「サブサイト」をプラグインしようとします。

誰かが私を正しい方向に向けることができるでしょうか?

4

2 に答える 2

1

既存のルールを微調整して、OPTIONALsubsite/またはsubsite2/プレフィックスを許可することできます

RewriteRule ^(subsite/|subsite2/)?([a-z]+)/([a-z0-9-]+)/$   /$1?content=$2&page=$3 [L]

または、既存のルールの前にサブサイトを処理するルールを追加するだけです。

RewriteRule ^(subsite/|subsite2/)([a-z]+)/([a-z0-9-]+)/$ /$1?content=$2&page=$3 [L]
RewriteRule ^([a-z]+)/([a-z0-9-]+)/?$ /?content=$1&page=$2 [L]
于 2012-11-18T10:25:57.537 に答える
0

フォルダーに別の.htaccessファイルを配置することで、これを機能させることになりました。subsite

ルートには次のもの.htaccessがあります。

RewriteEngine On
RewriteRule ^([A-Za-z0-9]+)/?$ ?a=b&content=$1 [L]
RewriteRule ^([A-Za-z0-9]+)/([A-Za-z0-9]+)/?$ ?a=b&content=$1&page=$2 [L]


サブサイト.htaccessには次のものがあります:(root.htaccessと同じ)

RewriteEngine On
RewriteRule ^([A-Za-z0-9]+)/?$ ?a=b&content=$1 [L]
RewriteRule ^([A-Za-z0-9]+)/([A-Za-z0-9]+)/?$ ?a=b&content=$1&page=$2 [L]

サブディレクトリのURLを変更する必要がない場合はRewriteEngine On、サブサイトのにのみ追加して.htaccessください。.htaccessこれは基本的にルート書き換えルールをオーバーライドし、サブフォルダーからページをロードします。

于 2012-11-24T07:44:19.307 に答える