2017-01-06 21 views
0

実際に存在しないURLを作成するにはどうすればよいですか?たとえば、https://twitter.com/i/notifications- です。/通知を削除すると、が得られます。https://twitter.com/i/- 動作しません。ですが、このURL /i/は実際には存在しません。実際に存在しないURLについて

どうすればいいですか?

+0

何かのようなものですか? –

+0

どうやってやろうとしているのですか? –

+0

これはリクエストの書き換えと呼ばれます。それを検索することができます – MiltoxBeyond

答えて

1

すべてのリクエストを単一のPHPファイルでルーティングし、そのPHPファイルのロジックを使用してURLが存在するかどうかを判断する.htaccessファイルを作成できます。これは、あなたがまだ再マッピングされ得るが、これらの文字列で始まらない任意のURLが意志しない画像、CSS、JSなどを指定することができます

RewriteCond $1 !^(index\.php|images|css|fonts|js|robots\.txt|test) 
RewriteRule ^(.*)$ /index.php/$1 [L] 

:たとえば、あなたは私のCodeIgniterの.htaccessファイルを使用することができますindex.phpにルーティングされます。 index.php内では、クエリ文字列を調べて、URLをどのように扱い、存在するかどうかを判断することができます。

// code in index.php, modify to suit 
switch ($_SERVER["PATH_INFO") { // you might also check out REQUEST_URI 
    case "foo": 
    // do blah blah blah 
    break; 
    case "bar": 
    // do other blah blah blah 
    break; 
    default: 
    header("HTTP/1.0 404 Not Found"); 
    echo "Sorry but that page was not found"; 
} 
+1

あなたの 'RewriteRule'は、リクエストされたURLパスを、クエリ文字列ではなく、_path情報(つまり' $ _SERVER ['PATH_INFO'] ')として渡しています。 – DocRoot

+1

@DocRoot DOH!あなたは正しいです。編集中... –

1

あなたは.htaccessファイルを編集してURL書き換えを使用することができます。 .htaccessが存在しない場合は、プロジェクトのルートディレクトリに作成することができます。

RewriteEngine on 
RewriteRule ^/?Some-text-goes-here/([0-9]+)$ /picture.php?id=$1 

あなたはあなたstrtagy使用することができますurl.com/picture.php?id=51同様に

picture.php/Some-text-goes-here/51に上記変換されます。

1

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

最終溶液:

+0

'/? 'を追加する必要はありません。 'RewriteRule^i(/.*)?/ company/company [L、NC]'となります。それがなければ大丈夫だろう。両方の作品。それは重複しているようです。だから、あなたに提案をすることを考えました。 – Perumal

+0

'/?'(スラッシュプレフィックス、この正規表現では_optional_になっています)は、このルールをサーバ設定やVirtualHostコンテキストで使用する場合にのみ必要です。ディレクトリごとの '.htaccess'ファイルでは、' RewriteRule'パターンにマッチしたURLパスはスラッシュで始まらないので、ここではそれを_optional_としています。 – DocRoot

関連する問題