3

Web サイトで MVC フレームワークを使用しています。Web ページの URL ファイル拡張子が表示されません。次のようなファイル拡張子を指定する必要があります。

www.legacy.com/women/tops.php 

しかし、その表示のみ

www.legacy.com/women/tops/ 

SEOの目的で、拡張子付きのURLを変更したい。しかし、フォルダやファイル名を変更することはできません。

もう1つ疑問があります.私のウェブページは表示されています

www.legacy.com/women/tops/ 

このように、これを www.legacy.com/women_tops.php/ に変更したいのですが、可能ですか?

ありがとうございました

URL をコントローラーに関連付けるために使用するコードは次のとおりです。

$arrCommands = array (
    'home' => "contents",
    'members' => "",        
);

if ( $arrCommands[$command1] == "*" )
{
    $includeFile = CONTROLLER_PATH . "/" . $command1 . "/" . $command2 . ".php";

    if ( !file_exists($includeFile) )
        $includeFile = CONTROLLER_PATH . "/" . $command1 . "/default.php";
}
    elseif ( !array_key_exists($command1, $arrCommands) )
    {
        $includeFile    =   CONTROLLER_PATH . "/contents/" . $command1 . ".php";
        if ( !file_exists($includeFile))
    Header( "Location: http://metroplots.ragedev/404_error/" );     
    }
else
{
    $includeFile = CONTROLLER_PATH . "/". $arrCommands[$command1] . "/" . $command1 . ".php";

    if ( !file_exists($includeFile) )
        $includeFile = CONTROLLER_PATH . "/contents/home.php";
}

include_once($includeFile);
4

7 に答える 7

5

.htaccess は魔法のようです。何でも好きなものに書き直すことができ、面倒になる可能性があります... http://httpd.apache.org/docs/2.0/misc/rewriteguide.html

また、アプリケーション自体でこれを実行できる必要があります。ほとんどの優れたフレームワークでは、ルートのカスタマイズを使用できます。ここに zend の例があります。

于 2012-12-21T05:10:45.583 に答える
2

あなたが探している技術はURL書き換えと呼ばれています

アイデアは、特定のURLを取得してサーバー側で書き換えることです。多くのソフトウェアは、このメソッドを使用して、get parameters を介してロジックを公開しません...

例: http://domain.com/blog/2

サーバーによると、この URL は実際には次のとおりです。

http://domain.com/index.php?cat=blog&page=2

Linux/Apache サーバーでは、modrewrite を介して実現されます: http://httpd.apache.org/docs/current/mod/mod_rewrite.html

書き換えルールとルート URL を説明するサーバー上の .htaccess ファイルを使用します。

Microsoft iis サーバーには、URL 書き換えと呼ばれる独自のフレーバー (および構文) があります: http://www.iis.net/downloads/microsoft/url-rewrite

これを行うためのツールがいくつかあります (そのうちの 6 つの概要を次に示します) http://webm.ag/2009/12/15/6-of-the-best-mod-rewrite-generators/

しかし、ほとんどの場合、自分で手動で作成するのが最善の方法だと思います。

これが私のサイトで使用するものの例です:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]

基本的に、このルールセットはすべてのトラフィックを index.php にリダイレクトします

私のMVCには、最初に実行されてURLが何であるかを調べる「url_logic」と呼ばれる汎用コントローラーがあります。そのロジックに基づいて、サイトを作成するために必要なコントローラーを作成します (404 エラー コントローラーであっても)。

始めるのに役立つことを願っています!

また、Windows の .htaccess ファイルを使用するのが難しい場合も同様です。それらにhtaccess.txtという名前を付けることをお勧めします。サーバーにアップロードするときに、そこで名前を変更します。

于 2012-12-28T21:08:30.463 に答える
1

htaccessに2行以下を追加する必要があります

RewriteEngine On

RewriteRule ^women/tops /women_tops.php
于 2012-12-21T05:14:14.207 に答える
1

index.php ファイルを作成します。このファイルは、表示用のデフォルト ファイルとして読み取られ、ファイルにリダイレクトされます。

于 2013-01-01T01:19:22.007 に答える
1

あなたが探しているのは mod_rewrite mod_rewrite です:

URL の拡張子を非表示:

mod_rewrite 書き換えルール ジェネレーターは、指定された動的 URL を取得し、正しい構文を生成して .htaccess ファイルに配置し、URL をスパイダー可能な形式で書き換えることができるようにします。Apache モジュール mod_rewrite は、特定の形式の URL を別の形式に変換し、動的コンテンツを含むサイトのインデックス作成を支援するのに非常に役立ちます。

: mod_rewrite を実行する前に、Apache サーバーで有効にする必要があります。

Syntax: RewriteRule url-pattern url-new [[flag,...]]
Example: RewriteRule ^/foo/(.*)$ /bar/$1 [R,L]

いくつかの便利なリンク-

URL : http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html

URL : http://tomclegg.net/rewriterule

于 2013-01-01T05:46:52.523 に答える
0

このウェブページを見てください。私はそれがあなたのための答えを持っているかもしれないと思います.

于 2013-01-01T09:35:11.850 に答える
0

この質問にリプレイしてくれたすべての人に感謝します。

$xepWords = explode('_',$command1);
    if($xepWords[0] == 'women')
    {
        $includeFile = CONTROLLER_PATH .'/women/tops.php';
    }  

このコードをコントローラーアクションに追加しました今は正常に動作しています

于 2013-01-02T07:53:55.033 に答える