2017-01-05 14 views
2

example.com/news.phpexample.com/newsまたはexample.com/news/に書き換えようとしています。私のコードでexample.com/newsはうまく動作しますが、example.com/news/は私に404が見つかりません。拡張モジュールを削除するmod_rewriteが許容範囲外です

マイコード:

<Directory /var/www/> 
    Options -Indexes SymLinksIfOwnerMatch -MultiViews 
    AllowOverride None 
    Order allow,deny 
    allow from all 

    <IfModule mod_rewrite.c> 

     RewriteEngine On 

     RewriteBase/

     RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC] 
     RewriteRule^%1 [R=301,L] 

     RewriteCond %{REQUEST_FILENAME} !-d 
     RewriteCond %{REQUEST_FILENAME}.php -f 
     RewriteRule ^([^\.]+)$ $1.php [NC,L] 

     RewriteRule ^games/csgo/([0-9]+)$ /games/csgo/view.php?id=$1 [L] 

    </IfModule> 
</Directory> 

私はexample.com/newsexample.com/news/example.com/news.phpをリダイレクトするにはどうすればよいですか?

答えて

2

あなたは1つのURLタイプに固執してください。 (またはスラッシュを付けずに)、その他の間違った種類をリダイレクトし、

このコードは、URLの末尾からスラッシュを除去するためのものである:

RewriteRule ^(.*)/$ /$1 [L,R=301] 

、それはまた、動作する前に、あなたがRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME}.php -fを追加する場合サブディレクトリがあります。

+0

'RewriteCond%{REQUEST_FILENAME}!-d'と' RewriteCond%{REQUEST_FILENAME} .php -f'を追加すると、それはサブディレクトリでも動作します。どうもありがとうございました! – Furentes

+0

あなたはようこそ、私は答えを更新する –

関連する問題