0

次のサイト: http: //htaccess.madewithlove.be/

リクエストのURLを次のように入力します:http:// localhost / prefix / games / u_id / game-name

これをhtaccessエリアに置きます。

RewriteEngine On        
RewriteBase /prefix

# stop directory listings
Options -Indexes 

#stops htaccess views
<Files .htaccess>
order allow,deny
deny from all
</Files>        

# redirect game folders     
    RewriteRule ^prefix/games/(.*)$ prefix/protected/files/$1 [L]

# remove .php; use THE_REQUEST to prevent infinite loops
    RewriteCond %{THE_REQUEST} ^GET\ (.*)\.php\ HTTP
    RewriteRule (.*)\.php$ $1 [R=301]     

# remove index
    RewriteRule (.*)/index$ $1/ [R=301]

# remove slash if not directory
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} /$
    RewriteRule (.*)/ $1 [R=301]

# add .php to access file, but don't redirect
    RewriteCond %{REQUEST_FILENAME}.php -f
    RewriteCond %{REQUEST_URI} !/$
    RewriteRule (.*) $1\.php [L]       

ErrorDocument 404 /prefix/error-404.php

結果は次のようになります:http:// localhost / prefix / protected / files / u_id / game-name

ここで、そのhtaccessファイルをwamp localhostサーバーに配置し、そのサイトのリクエストURLに配置したのと同じURLに移動するとします。404ページが見つかりません...それでも、テストサイト(上記のサイト)から結果ページにアクセスすると、そこにあるindex.phpページが読み込まれます。

ローカルホストのWebサイトでリダイレクトが機能していません。何か案は?htaccessファイルは確実に実行されています。

編集::///

Apacheアクセスログが出力されています:

127.0.0.1 - - [25/Apr/2012:18:44:02 +0100] "GET /prefix/games/u_id/game-name HTTP/1.1" 404 116
127.0.0.1 - - [25/Apr/2012:18:44:02 +0100] "GET /favicon.ico HTTP/1.1" 404 209

編集::///

解決しました。

4

1 に答える 1

0

RewriteBase /prefixルートディレクトリ内にhtaccessがある場合は、正しくありません。htaccessがプレフィックスディレクトリ内にある場合、リライタルールはプレフィックスで開始しないでください。htaccessはどこにありますか?

于 2012-04-27T11:10:36.810 に答える