0

私のサイトのユーザープロファイルには、mysite.com / user/usernameというURLがあります。私が実際にやりたいことは、そのURLはmysite.com/usernameである必要があります。そして、これらのコード行をhtaccessファイルに追加しました

RewriteRule ^([a-zA-Z0-9_-]+)$ user.php?uname=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ user.php?uname=$1

これで、mysite.com/usernameからユーザーに連絡できます。しかし、エラーは、404ドキュメントが機能していないことです。myste.com/dasdfsfのように存在しないurlと入力すると、すべての数字と文字を検索し(ユーザー名を見つけるため)、無効なユーザー名用に作成した空白のページが表示されるため、404ドキュメントは取得されません。そのユーザーが存在しない場合は、404ページを表示したいと思います。

4

2 に答える 2

2

無効なユーザー名に対して空白のページを表示するのはなぜですか?代わりに404ページを表示してください。

于 2012-06-07T17:43:19.680 に答える
2

リダイレクト:

RewriteRule ^user/([a-zA-Z0-9_-]+)$ http://example.com/$1 [R=301,L]
RewriteRule ^([a-zA-Z0-9_-]+)$ user.php?uname=$1 [L] #use the L option to stop processing
RewriteRule ^([a-zA-Z0-9_-]+)/$ user.php?uname=$1 [L]

404 を表示するには、404 ページを設定し、user.phpそれを読み取るロジックを追加する必要があります。

<?php
    if(!userExist()){
        header('Status: 404 Not Found');
        echo file_get_contents('404.php');
        exit;//do this if there is code below that assumes this is a valid user
    }
?>
于 2012-06-07T17:48:49.843 に答える