0

現在、私の HTACCESS ファイルは次のようになっています。

RewriteEngine On        
RewriteBase /

# stop directory listings
#Options -Indexes 

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

# redirect game folders     
RewriteRule ^games/([^/]+)/([^/]+) games.php?author=$1&slug=$2 [L]   

# redirect edit     
RewriteRule ^protected/edit-game/([^/]+)/([^/]+) protected/edit-game.php?author=$1&slug=$2 [L] 
RewriteRule ^admin/edit-game/([^/]+)/([^/]+) admin/edit-game.php?author=$1&slug=$2 [L]

# redirect view     
RewriteRule ^protected/view-game/([^/]+)/([^/]+) protected/view-game.php?author=$1&slug=$2 [L]   

# redirect user
RewriteRule ^page/([^/]+) user.php?user=$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 /error-404.php

誰かが www.domain.com/im-a-page-in-database に行ったときにそうするという新しい要件があります

それは私のpage.phpに行き、隠された「slug」->「im-a-page-in-database」をつかみ、その特定のページオブジェクトを返すデータベースに問い合わせます。

HTACCESS ファイルに次のようなものを追加すると、次のようになります。

# redirect pages/posts 
RewriteRule ^([^/]+) page.php?slug=$1 [L]     

成功する可能性のある以前の書き換えをすべて上書きし、htaccess ファイルのどこに配置されていても、私の page.php を表示しますか?? 私は、ルールが認識された場合、L が意味するものだと思っていました. したがって、すべてのリダイレクトの下に新しい行を配置すると、ページチェックを最後に行う必要があります..しかし、いいえ:(

何か案は?

4

1 に答える 1

0

多分それはあなたの 301-Redirect が原因ですか? ブラウザはこれらのリダイレクトをキャッシュするため、別のブラウザを試すか、キャッシュをクリアする必要があります。

于 2012-06-14T20:10:23.693 に答える