2017-12-16 16 views
0

リンクに値がない場合は、index.phpにリダイレクトしてください。どうすればinstagramのような.htaccessでURLをリダイレクトできますか?

Example; 
www.mydomain.com/  --> index.php 

リンクがwww.example.com/post/valueの場合、post.phpにリダイレクトします。

Example; 
www.mydomain.com/post/cDfS58Q  --> post.php 

リンクが値のみで構成される場合は、profile.phpにリダイレクトします。

Example; 
www.mydomain.com/jhon.34  --> profile.php 

私のテスト:

RewriteRule ^post/([0-9a-zA-Z-_/.]+)$ post.php?$1 [QSA,L] 
RewriteRule ^([0-9a-zA-Z-_/.]+)$ profile.php?$1 [QSA,L] 

それらはすべてpost.phpに行きます。

答えて

0

私は別の方法でそれをやりました。

htaccessの

RewriteRule ^p/(.*)$ post.php?$1 [QSA,L] 
RewriteRule ^([0-9a-zA-Z]+)$ index.php?$1 [QSA] 
RewriteRule ^([0-9a-zA-Z]+)/$ index.php?$1 [QSA] 

のindex.php

<?php 
if (!empty($_SERVER['QUERY_STRING'])) { 

    //Profile.php will be included here. 
    echo "You are in profile now."; 

}else { 
    //Homepage.php will be included here. 
    echo "You are in profile now."; 
} 
?> 

URL:www.localhost.com/adsasd

出力:You are in profile now.

URL:www.localhost.com/

出力:You are in homepage now.

1

値が設定されていないリンクを除いて、シナリオごとに書き換えルールを設定します。ウェブサイトにアクセスするときに開くデフォルトのファイルはindexなので、明示的に設定する必要はありません。

より小さいURIの条件は、通常、大きい方の条件を満たすので、URIの条件を満たしているため、最長からURIになります。

はこのようsomethigをお試しください:

# Mod Rewrite setup 
Options +FollowSymlinks 
RewriteEngine on 
AddDefaultCharset UTF-8 

# First enter the one with the longest URI 
RewriteCond %{REQUEST_URI} ^/?post/([0-9a-zA-Z-_/.]+)/?$ 
RewriteRule ^(.*)$ /post.php?data=%1 [NC,L] 

# Then the one with only value 
RewriteCond %{REQUEST_URI} ^/?([0-9a-zA-Z-_/.]+)/?$ 
RewriteRule ^(.*)$ /profile.php?data=%1 [NC,L] 
+0

友人はいません – developer

+0

あなたの '.htaccess'ファイルの場所はどこですか? 'www.mydomain.com'の' public_html'ディレクトリにありますか? – Ivan86

+0

localhost/www/.htaccess – developer

関連する問題