2009-07-10 26 views
5

私は3ページ(ホーム、ページ2、ページ3)を含むWebサイトを開発しています... 2番目のページには、4つのアイテム(サブページ1、サブページ2、...) url変数を持つページ2の内容!言い換えれば、PAGE2の点で、ナビゲーションバーの2番目の項目へ:なぜこのRewriteRuleが機能しないのですか?

http://localhost/uk/page2/index.php?pg=subpage2 

アイテム3点まで:

http://localhost/uk/page2/index.php?pg=subpage3 

今私は.htaccessを経由して、より親しみやすいURLを使用したいと思います!

私はこれを書いている:ルートに置か.htaccess

RewriteEngine On 
RewriteRule /uk/page2/(.*)/$ /uk/page2/index.php?pg=$1 

しかし、動作しません! 助けてください!

答えて

9

あなたは.htaccessを使用している場合は、あなたが先頭のスラッシュはありません。

RewriteEngine On 
RewriteRule ^uk/page2/(.*)/$ /uk/page2/index.php?pg=$1 
+0

あなたの答えに感謝します! また、この書き換えは機能しません! –

+0

それがうまくいかないと言うと、どういうことが起こりますか? – Greg

+0

.htaccessにゴミを入れてみてください。あなたは500 Server Errorを取得する必要があります。そうしないと、.htaccessがロードされていません。 – Greg

0

をそれは、末尾にスラッシュなるので、この変更があります。これに

RewriteEngine On 
RewriteRule /uk/page2/(.*)/$ /uk/page2/index.php?pg=$1 

を:

RewriteEngine On 
RewriteRule ^(.*)uk/page2(/?)(.*)$ /uk/page2/index.php?pg=$3 

もう1つのことは、httpd.confファイルのAllowOverrideをAllに設定していることです。なしの代わりに。 Noneに設定すると、.htaccessで何もすることはできません。

2

やあ、私は実際にカバーの下に何が起きているかをチェックするために、高レベルではRewriteLog設定オプションを有効にすることをお勧めしたい

Has AllowOverides been enabled?</obvious> (-: 

あなたは.htaccessファイルに

これらは非常に長い時間に達しているが、信じられないmod_rewriteのは、.htaccessファイル内、すなわち、ディレクトリごとのコンテキストでURL操作を提供を使用して運の出ているように思えますURLがファイル名に変換された後これは、.htaccessファイルがファイルシステムに存在するので処理がすでにこの段階に達しているためです。つまり、現時点のAPIフェーズによると、URL操作が遅すぎるです。 - Apache mod_rewrite doc.s(強調鉱山)

関連する問題