2017-01-31 25 views
0

私はS/Oでこれに対する答えを簡単に見つけることができると思いますが、すべてを試しました。数時間のフラストレーションの後で、実際の専門家が何を考えるかを見ている。Modリライト(SEOフレンドリーURL)

これはmodリライトでも可能ですが、お待ちしています。

問題:私はこのようなURLをオンにしようとしてる ...この中へ

http://domain.com/new-cars/state.php?stateCode=al 

最低でも...

http://domain.com/new-cars/al-new-cars 

ものの、理想的に私はそれを取得したいですこのように見えるように(はい、$ stateCode変数として完全な状態名を使用してコードを書き直して、簡単にします)...

結局計画は、このような...

http://domain.com/new-cars/alabama-new-cars 

としてリンクでURLのを使用して、動的なバージョンで、このSEOフレンドリーなURLを関連付けると、正しくページを表示するので車を取るの.htaccess持ってできるようにすることです。

どのようにしても、私は必要なようにこれを行う方法を見つけ出すことができませんでした。

ここで私が試したことがあります。私は他の人の質問に2つの異なるモッズ書き換え発電機や様々な答えを使用して作成した

Options +FollowSymlinks 
 

 
    RewriteEngine on 
 
    RewriteBase/
 

 
    RewriteCond %{REQUEST_FILENAME} !-f 
 
    RewriteCond %{REQUEST_FILENAME} !-d 
 

 
    RewriteRule ^new-cars/([^-]*)-new-cars/$ /new-cars/state.php?stateCode=$1 [L,QSA,NC]

そして、さまざまなバリエーション。

何も問題はありません。

私はそれが

http://domain.com/new-cars/AL-new-cars 

にURLを書き換え...しかし、それはしないこと

http://domain.com/new-cars/state.php?stateCode=AL 

に行くとき、私は期待しています。代わりに、私は入力したのと全く同じ動的URLをそのままにしています。「希望の」リライトURLに移動すると、そのページが存在しないという404エラーが表示されます。

私は間違っていますか?

おそらく私の.htaccess特権が正しく設定されていないと思っていましたが、.htaccessを使って301のリダイレクトをかなり簡単に行うことができます。そうではありません。

誰かが助けてくれるかもしれません。私は非常に多くの順列に挑戦しました。でも、基本的な書き直しをしてもうまくいくかどうかはわかりませんが、何もしませんでした。

ご協力いただきましてありがとうございます。

答えて

1

あなたが使用することができます。

Options +FollowSymlinks 

RewriteEngine on 
RewriteBase/

# external redirect from actual URL to pretty one 
RewriteCond %{THE_REQUEST} \s/+new-cars/state\.php\?stateCode=([^\s&]+) [NC] 
RewriteRule^/new-cars/%1-new-cars? [R=301,L,NE] 

# internal forward from pretty URL to actual one 
RewriteRule ^new-cars/([^-]*)-new-cars/?$ /new-cars/state.php?stateCode=$1 [L,QSA,NC] 
+1

OMGを、ありがとうございました! – Trapp

関連する問題