2016-04-11 11 views
3

ユーザーがつのパラメータを持つhtaccessの書き換えルールに

http://example.com/app/abcd123/ 

のようなURLを入力すると、私は、ブラウザでURLを変更せずに

http://example.com/app/index.php?param=abcd123 

から姫のページを表示したいです。

私はこの.htaccessコードを試してみてくださいコード

RewriteEngine on 
RewriteCond %{REQUEST_URI} ^/index.php [NC] 
RewriteCond %{QUERY_STRING} ^param=(.*) 
RewriteRule (.*) http://example.com/app/%1? [R=301,L] 
+0

は '/ app' /実際のディレクトリですか? – anubhava

+0

はい、私はhtaccessファイルをそこに置いています – moonvader

答えて

3

あなたは/app/.htaccessでこのコードを使用することができます。

RewriteEngine on 
RewriteBase /app/ 

# external redirect from actual URL to pretty one 
RewriteCond %{THE_REQUEST} /index\.php\?param=([^\s&]+) [NC] 
RewriteRule^%1? [R=302,L,NE] 

# internal forward from pretty URL to actual one 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.+?)/?$ index.php?param=$1 [L,QSA] 
+1

ありがとうございます - このコードは期待通りに動作します! – moonvader

1

でappフォルダ内の.htaccessファイルを置きます。それはあなたを助けるはずです。

書き換えベースは、現在のディレクトリのルート形式にする必要があります。この中

RewriteBase /app/ 

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-s 
RewriteRule ^(.*)$ index.php?param=$1 [QSA,NC,L] 

RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^(.*)$ index.php [QSA,NC,L] 

RewriteCond %{REQUEST_FILENAME} -s 
RewriteRule ^(.*)$ index.php [QSA,NC,L] 

ユーザがコールこれは、作業する必要がありhttp://example.com/app/index.php?params=qwerty

のように処理されますhttp://example.com/app/qwertyのように入力した場合、私はそれをテストしました。あなたが何かトラブルに直面したら私に教えてください。

+1

ありがとう - コードが動作し、私が直面した唯一の問題は - 私のフォントがこのフォルダにもあり、 "/app/fonts/font.ttf ?ver = 1.4.4 " – moonvader

+1

@ムーンヴァーダー、あなたの答えはanubhavaの答えです。 – Sibidharan

0
RewriteEngine On 
RewriteBase /app 
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php?param=$1 [L] 

そこをチェックしてください:http://htaccess.mwl.be/または他のオンラインhtaccessのテストサービス

関連する問題