2017-09-02 11 views
1

htaccessを使用してURL書き換えルールに問題が発生しました。このような作業は完全に、そのよう...Bitnami LAMP htaccess書き換えが動作しない

RewriteRule ^thread/([a-zA-Z0-9-/]+)/$ thread.php?slug=$1 
RewriteRule ^thread/([a-zA-Z0-9-/]+)$ thread.php?slug=$1 

...などしかし、より高度な書き換えルールが動作しません...

RewriteCond %{HTTPS} !=on 
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L] 

...などの基本的な書き換え。

Google Cloud PlatformでBitnami仮想マシンを使用しています。

ご協力いただきありがとうございます。

+0

リクエストしているURLは何ですか? 「働かないでください」とは、何も起こらないということですか? – MrWhite

答えて

1

で試してみてください:

Options -MultiViews 
RewriteRule ^thread/([a-zA-Z0-9\-/]+)/?$ thread.php?slug=$1 

ない正規表現のギャップが0-9-/
で正しいであり、それはまたしてか、最後に/なしMultiViews
作品に問題があることを確認してください。

+1

'0-9- /' - 私は同意します。文字class_の真ん中のハイフンは、通常、リテラルハイフンにマッチするためにエスケープされるべきです(それが意図であると仮定します)。しかし、このインスタンス(Apache 2.4)では、エスケープされていないハイフンが "意図したとおりに動作する"ように見えます。文字クラスのハイフンとスラッシュの両方がリテラル文字として正常にマッチングされます。これは、ハイフンが有効な範囲を構成していないためです。もちろん、我々はOPが要求しているURLなどを実際には知りません(正規表現の他の味はエラーに終わったかもしれません)。 – MrWhite

+0

@MrWhiteありがとう!この場合、それは確かに問題の答えではありません。私は彼に試してみると私は最終的に私の答えを削除します。 – Croises

+0

私はハイフンをエスケープすることは確かに有効な点だと思います(私はあなたの答えを削除しません)。しかし、この場合、 'MultiViews'で頭の爪に当たっているかもしれません。 'MultiViews'が有効だった場合、mod_negotiationはmod_rewriteの前にリクエストを' thread.php'( 'slug'なし)に書き換えるので、' RewriteRule'は決して一致せず、 'slug' URLパラメータも設定されません。 – MrWhite

関連する問題