2017-05-11 14 views
0

私のウェブサイトはmywebsite.com/newsmywebsite.com/news.phpにリダイレクトしていますが、私はそれを望んでいません。
私はそれがmywebsite.com/newsこのように、私は私の.htaccessファイルを変更し、ファイルを他の言葉のために正常に動作しない
mywebsite.com/index.php?param=newsにリダイレクトする必要があります。
mywebsite.com/helloはにリダイレクト:私は私のルートフォルダにnews.phpファイルを持っているmywebsite.com/index.php?param=hello
を、しかし、.htaccessでファイル拡張子を要求する

Options -Indexes 

# pass the default character set 
AddDefaultCharset utf-8 

Options +FollowSymLinks 
RewriteEngine On 

RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 

RewriteRule ^([\s\S]+)$ index.php?param=$1 [L,QSA,NC,NE] 
01:私はこれが私の .htaccessファイルです
... mywebsite.com/newsは、私はあなたが私が何を意味するか理解してほしい mywebsite.com/news.php
にリダイレクトする必要はありません

これを解決するにはどのような変更を行う必要がありますか? ヘルプ、コメント、提案は高く評価されます。

答えて

0

変更するには、Optionsライン:

Options +FollowSymLinks -MultiViews 

次のようにのMultiViewsの効果は次のとおりです/いくつかの/ dirはMultiViewsオプションが有効になっている場合、サーバーは、いくつかの/ディレクトリ/ fooの/ため リクエストを受信した場合、 /some/dir/fooが存在しない場合、サーバはディレクトリ を読み込み、foo。*という名前のファイルを検索し、これらすべてのファイルに同じタイプのメディアを割り当てる クライアントが0のいずれかを要求した場合のコンテンツエンコード名前で。次に、クライアントの 要件に最もよく一致するものを選択します。 https://httpd.apache.org/docs/current/content-negotiation.html

またで拡張子.phpを削除することができます

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

をおかげで、あなたは私の一日保存しました。 :)期待どおりに動作します! –

+0

あなたは喜んで、うまくいきました。 – Croises

関連する問題