2016-10-25 20 views
1

URLの書き換えに問題があります。 ?私は単に既存のURLに www.name.com/demo/profile のようなスマートURLをリダイレクトしようとしているURL書き直し - 簡単な問題

www.name.come /デモ/ index.phpをS =プロファイル

自分の.htaccessをルートディレクトリに置きます。ここで

は私のコードです:

RewriteEngine On 
RewriteRule ^demo/([a-z]+) demo/index.php?s=$1& [NC,L] 

私は www.name.com/demo/profile のようなものを記述する場合、それは動作しません。

サーバ上のMod Rewriteがアクティブで動作しています(他の例も試しました)。

ありがとうございます! 数字で

Update

それが動作します。

マイルール:

RewriteEngine On 
RewriteRule ^demo/([0-9]+) demo/index.php?s=$1& [NC,L] 

スマートURL: www.name.com/demo/1
既存のURL:? www.name.come /デモ/ index.phpをS = 1

文字では機能しないのはなぜですか?

+0

どのように動作しませんか?与えられた具体的な例のために*すべき*です。 – CD001

+2

URLに行ったとき、どのようなエラーが表示されますか? – starkeen

+0

が見つかりません 要求されたURL/demo/profileがこのサーバー上に見つかりませんでした。 – DevTen

答えて

2

ルールに条件を追加するか、一致を少し制限する必要があります。いずれかを試してみてください:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^demo/([a-z]+) demo/index.php?s=$1& [NC,L] 

または

RewriteEngine On 
RewriteRule ^demo/([a-z]+)$ demo/index.php?s=$1& [NC,L] 

あなたの正規表現は、 "index.phpをを" 一致終わるしないように。

+0

ありがとうございますが、それでも動作しません。 常に同じエラー: が見つかりません 要求されたURL/demo/profileはこのサーバー上に見つかりませんでした。 – DevTen