2017-02-19 5 views
0

を実行し、「ブログ」が含まれている場合、次のブロックは、私がRewriteCond %{REQUEST_URI} ^/blogを追加しようとした.htaccessの.htaccessのURLは、URLが言葉「ブログ」が含まれている場合は、ルール

RewriteBase /blog/ 
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /blog/index.php [L] 

で実行する必要がありますしかし、それは失敗します。

はPS:

私はたとえば、あなたがexample.com/frに行くとき、それはそれはexample.com/index.php?lang=frのような役割を果たします

RewriteCond %{ENV:REDIRECT_rewritten} !=1 
RewriteCond %{QUERY_STRING} ^lang=([a-z]{2})$ [NC] 
RewriteRule ^([^/]*)$ /%1/$1? [R=301,L] 

RewriteCond %{REQUEST_URI} !^/(js)/ 
RewriteRule ^([a-z]{2})(?:/([^/]+))?$ $2?lang=$1 [NC,L,QSA,E=rewritten:1] 

を追加

+0

あなたの最後を '/ blog/.htaccess'に移動してください(まだ作成していない場合は作成してください) – anubhava

答えて

1

ありません(それはルールで書かれたようexample.com/js...だ場合を除きます)それを上部に追加します。 RewriteCondは、次のRewriteRuleにのみ適用されます。それだけであなたがここで使用していない相対的な置換、に適用されるので、私は外に最初RewriteBaseラインを取った

RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_URI} ^/blog(?:/|$) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /blog/index.php [L] 

:あなたはこのようにそれを行うことができます。

これは、/blog/ディレクトリの.htaccessファイルに設定されているようです。この場合、私が追加したものはとにかく必要ではありません。最初の行は、ルートに移動する場合に変更する必要があります。同じ問題の周りのあなたの他の投稿に基づいてここに少し推測する。

+0

こんにちは、今、ブログのURLに行くと、' example.com/blog/2017/01/18/some -blog-post/'、'要求されたURL /example/blog/index.phpはこのサーバ上に見つかりませんでした。 ' –

+0

しかし、RewriteBaseルールでは以前は動作していました。問題は、それが私が追加した他のルールでうまくいきません、私はちょうどポストを更新しました。 –

+0

RewriteBaseは問題を起こさないでしょう。全く何もしていないので、削除するように提案しました。 '/ example/blog /'とは何ですか?あなたはそこに入るために別の書き直しや何かが必要です。 – SuperDuperApps

関連する問題