2

Facebook などの他のソーシャル ネットワーキング サイトと同じように、URL にユーザー名を渡したいと思います。URL は次のようになります。www.mysite.com/username

また、ユーザー名の場所の値がディレクトリ名の場合、ディレクトリにアクセスできるようにしたいと考えています。

元。www.mysite.com/downloadsディレクトリにかかりdownloadsます。

このために私ができることは、渡された値が有効なディレクトリ名である場所を最初に確認することです。はいの場合、ディレクトリにアクセスするか、渡されたユーザー名を持つユーザーが存在するかどうかを確認します。

.htaccessこのために私が行ったことは、ルートディレクトリに次を含むファイルを作成したことです

RewriteEngine On
RewriteRule ^ index.php

そしてURLのチェック

// requested url
$request = $_SERVER['REQUEST_URI'];
// trim last / if available
$url = rtrim($request,'/');
// explode url and save in $ar array
$ar = explode('/',$url);

if(sizeof($ar) > 2)
{
  header('location : error/?error=1');
} else {
  $user = $ar[1];
}

上記の if ステートメントは、渡されたパラメーターが 1 つ以上であることを確認するためのものです。元。www.mysite.com/username/post無効な URL になります

しかし、このコードでは、自分のディレクトリにアクセスできませんでしwww.mysite.com/downloads た。これを行う簡単な方法は何ですか。

編集2:

アクセス先のディレクトリ内のディレクトリまたはファイルでない場合、URLを変数としてwww.mysite.com/username渡す必要がありますusernameindex.phpmyProfile$user = $_GET['u'];

更新しました.htaccess

# Do not remove this line or mod_rewrite rules and search engine friendly URLs will stop working
RewriteBase /
Options All -Indexes

# Timezone
SetEnv TZ Asia/Kolkata

ErrorDocument 404 /404.html
ErrorDocument 403 /403.html

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /myProfile/index.php?u=$1 [L,QSA]
4

1 に答える 1

2

でこのコードを試してください/.htaccess:

ErrorDocument 404 /404.html
ErrorDocument 403 /403.html
DirectoryIndex index.php

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ myProfile/index.php?u=$1 [L,QSA]

それでも問題が解決しない場合は、同じガベージ (ランダム) テキストを上に置いて、有効になっ404ているかどうかを確認し、ブラウザで URL にアクセスしたときに 500 (内部サーバー) エラーが発生するかどうかを確認します。.htaccess/.htaccesswww.mysite.com/index.php?u=username

于 2016-04-17T07:41:42.217 に答える