0

.htaccess ファイルに次のものがあります

    # Use PHP5 Single php.ini as default
    AddHandler application/x-httpd-php5s .php

    Options -Indexes


    # preserve bandwidth for PHP enabled servers
    <ifmodule mod_php4.c>
     php_value zlib.output_compression 16386
    </ifmodule>

    # For security reasons, Option followsymlinks cannot be overridden.
    #Options +FollowSymLinks
    Options +SymLinksIfOwnerMatch
    RewriteEngine On
    RewriteRule ^faq/?$ faq.php
    RewriteRule ^about/?$ about.php
    RewriteRule ^portfolio/(.*)$ portfolio.php?p=$1

            #Error Page___NOT found
    ErrorDocument 404 /notfound.php

私のポートフォリオには、「有名人」、「結婚式」、「産業」のセクションのみが含まれています。つまり、次のページのみが有効なポートフォリオです。

    mysite.com/portfolio/celebrity
    mysite.com/portfolio/weddings
    mysite.com/portfolio/industrial

特定の状況で「ポートフォリオ」ページに問題があります。

    "mysite.com/portfolio/celebrity"
    "mysite.com/portfolio/weddings"
    "mysite.com/portfolio/industrial"

すべて正常に動作します。

    "mysite.com/portfolio/celebrity/"
    "mysite.com/portfolio/weddings/"
    "mysite.com/portfolio/industrial/"

(末尾のスラッシュに注意してください)、Firefoxは次のエラーを表示します

    Firefox has detected that the server is redirecting the request for this address in a way that will never complete.

最後の行を次のように置き換えてみました

    RewriteRule ^portfolio/(.*)/?$ portfolio.php?p=$1

どちらも役に立たず、前述のエラーが表示されます。

訪問

    "mysite.com/portfolio/some-non-existent-portfolio"

また

    "mysite.com/portfolio/some-non-existent-portfolio/"

「notfound.php」にリダイレクトしません

4

1 に答える 1

3

わかりました、この Web ページのおかげで解決しました: http://www.phpfreaks.com/forums/index.php?topic=167839.0

関連する行を次のように変更しました

    RewriteRule ^portfolio/([a-zA-Z]+)/?$ portfolio.php?p=$1

訪問したポートフォリオタイプが存在しない場合に「notfound.php」を表示するなど、すべてが完全に機能するようになりました。これが誰かに役立つことを願っています。

于 2012-03-04T10:44:25.360 に答える