2

PHPを使ってSEOに強いサイトを作ろうと...

フォルダー jcheck には、1 つのパラメーター「id」を入力として取る index.php ファイルがあります。

mydomain.com/jcheck/index.php?id=1 works

次のようにするにはどうすればよいですか

mydomain.com/jcheck/1

私は.htaccessファイルを作って入れてみました

RewriteEngine on

RewriteCond %{REQUEST_URI} 1/
RewriteRule 1/ http://mydomain.com/jcheck/index.php?id=1

どうすればそれを機能させることができますか?

4

5 に答える 5

4

基本的にこれを行うには、次の 2 つの方法があります。

mod_rewrite を使用した .htaccess ルート

ルート フォルダーに .htaccess というファイルを追加し、次のようなものを追加します。

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

これにより、このフォルダーの mod_rewrite を有効にするように Apache に指示し、正規表現に一致する URL を要求された場合、エンド ユーザーに表示されることなく、必要な URL に内部的に書き換えます。簡単ですが柔軟性に欠けるので、さらにパワーが必要な場合は次のようにします。

PHPルート

代わりに .htaccess に以下を入れてください:

FallbackResource index.php

これにより、サイトで通常は見つけられないすべてのファイルに対して index.php を実行するように指示されます。そこで、たとえば次のことができます。

$path = ltrim($_SERVER['REQUEST_URI'], '/');    // Trim leading slash(es)
$elements = explode('/', $path);                // Split path on slashes
if(count($elements) == 0)                       // No path elements means home
    ShowHomepage();
else switch(array_shift($elements))             // Pop off first item and switch
{
    case 'Some-text-goes-here':
        ShowPicture($elements); // passes rest of parameters to internal function
        break;
    case 'more':
        ...
    default:
        header('HTTP/1.1 404 Not Found');
        Show404Error();
}

これは、URL、構成、データベースに依存する URL などを解析する際の柔軟性がはるかに高いため、大規模なサイトや CMS システムが行う方法です。

***** PHP による URL 書き換えからこのコンテンツをコピーします**

于 2013-09-16T07:36:03.160 に答える
2

jcheck ディレクトリの htaccess ファイルで、次のルールを使用します。

RewriteEngine On
RewriteBase /jcheck/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9]+)/?$ index.php?id=$1 [L,QSA]
于 2013-09-16T07:58:42.280 に答える
0

.htaccess ファイルをjcheckフォルダー内に置き、次のように記述します。

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-D
RewriteRule ^1/?$ index.php?id=1
于 2013-09-16T07:34:37.740 に答える