プロジェクト用に自分のソーシャルメディアを構築しようとしています。 "id"またはカスタム "/my.user" URLのいずれかをユーザデータベースに問い合わせるprofile.php上のPHPスクリプトがあります。 私はそれのようになりたいURL、それを入力します。それは、このコードで動作しますmysite.com/my.user:htaccessでSEOに優しいURLを取得するにはどうすればよいですか?
RewriteRule ^/?(.+)/?$ ./profile.php?u=$1 [QSA,L]
しかしhtaccessファイルは私が」に入れて聞かせていません例えば、mysite.com/20はプロファイルの「id」を使用して動作しません。 私は別のhtaccessのコードを試してみましたが、それは上記と同じように動作します:
RewriteRule ^/?([a-zA-Z0-9\-=&[email protected]\.]+)/?$ profile.php?u=$1 [QSA,L]
だから、物事をクリアします。
- これは動作します:mysite.com/my.user
- はこれはしていません:mysite.com/20またはmysite.com/myuser
私はこの作業を取得することを期待:
- mysite.com/20
- mysite.com/my.user
どうすればいいですか?
完全に.htaccessコード:
AddDefaultCharset UTF-8
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
Options +FollowSymLinks
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^./profile.php
RewriteRule ^/?(.+)/?$ ./profile.php?u=$1 [QSA,L]
<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>
今何が起こるには、ユーザーがmysite.comのような何のドットを、持っていない場合mysite.com/my.user(特殊なユーザーのURL)が働いて、しかし、されていないことです/ myuser。それから存在しないmyuser.phpを取得しようとします。 また、 "my.user"の "id"をmysite.com/20のように入力すると、 "profile not found"と表示されます。
これはprofile.phpクエリのコードです:
$profile = mysqli_real_escape_string($mysqli, $_GET['u']);
if (filter_var($profile, FILTER_VALIDATE_INT) == true) {
$query = "SELECT * FROM UserProfile, Location WHERE UserProfile.id = '$profile' AND Location.id = '$profile'";
} else {
$queryurl = "SELECT id FROM UserProfile WHERE UserProfile.ProfileUrl = '$profile'";
if ($result2 = $mysqli->query($queryurl)) {
while ($row2 = $result2->fetch_assoc()) {
$userid = $row2['id'];
}
}
$query = "SELECT * FROM UserProfile, Location WHERE UserProfile.ProfileUrl = '$profile' AND Location.id = '$userid'";
$result2->free();
}
よろしく、エリック。
「動作しません」と定義します。それは何をするのですか?代わりに何をすると思いますか? – deceze
私は彼がprofile.phpを望んでいると思う?u = 20(ここで20はIDです)彼の例でカスタムurl(my.user)として利用できるようになります –
@deceze私は投稿を更新しました。デニスは言った。 –