2016-07-12 11 views
4

PHPウェブサイトでhtaccess経由でmod rewriteを使用したいと思います。Mod Rewriteを使用してURL構造を変更する

URL構造は次のとおりです。

example.com/ex.php?ez=DF004AE 

ことになる必要があります。

example.com/ex/DF004AE.htm 

そうするために私の.htaccessに追加する適切なスクリプトとは何ですか?

+0

何か試しましたか? – apokryfos

+0

新しいURLは存在しますか? – starkeen

+0

いいえ、SEO – marya

答えて

2

使用この:

RewriteEngine On 
RewriteRule ^ex/([^/]*)\.htm$ /ex.php?ez=$1 [L] 

それはあなたに次のURLを提供します:あなたはそれを.htmlをすることを意図した場合

example.com/ex/DF004AE.htm

を(.HTMない)だけでLを追加RewriteRule。

+0

のちょっとしたリンクです。もう一度質問をしましたが、質問文字列のURLからかなりのものまで反対の質問をしていました。 – apokryfos

+1

私はそれを@apokryfosと正確にどのように読むのですか? OPは、URL「example.com/ex.php?ez = DF004AE」を「example.com/ex/DF004AE.htm」にするように要求しました。 – Lag

1
RewriteEngine On 
RewriteRule ^ex/([^/]*)\.html$ /ex.php?ez=$1 [R=301,NE,L] 

アドレスバーにこの変更が反映されないようにするには、R = 301を削除します。 NEパラメータは、要求がエスケープされていないことを確認するためのものです。

2

は、次のルールを使用することができます。

RewriteEngine on 
# Redirect from "/ex.php?ez=foobar" to "/ex/foobar.htm" 
RewriteCond %{THE_REQUEST} /ex\.php\?ez=([^\s]+) [NC] 
RewriteRule^/ex/%1.htm? [L,R] 
#################### 
# internally map "/ex/foobar.htm" to "/ex.php?ez=foobar" 
RewriteRule ^ex/([^.]+)\.htm$ /ex.php?ez=$1 [NC,L]  

この /ex/foobar.htm/ex.php?ez=foobarを変換します。

関連する問題