2017-01-14 11 views
1

私はPHPでブログを作っています。私は人々が、たとえば、URLクエリを使用してページをロードすることができるようにしたい:htaccessのディレクトリとURLクエリの間の末尾のスラッシュを削除する

blog.mysite.com/article?a=my_cool_article

私は実際に「資料がありません

DirectorySlash Off 
RewriteEngine on 
RewriteRule ^article?([a-zA-Z0-9\-_]+)/?$ /article\.php?article=$1 [QSA,L] 

それは正常に動作しますが、WHE: "ディレクトリ、私はちょうど私が内部的に要求をリダイレクトするための.htaccessに次のように使用していますarticle.php

という名前のファイルを持っていますnは私はそれがこのように見えるようにURLを変更...それはarticle?の間にスラッシュを追加し、それを使用しよう:

blog.mysite.com/article/?a=my_cool_article

私はここで解決策のヒープを試して、動作するものは何も見つかりません。読んでいただきありがとうございます!ここで


私の既存のルールです:

DirectorySlash Off 
RewriteEngine on 
RewriteRule ^article?([a-zA-Z0-9\-_]+)/?$ /article\.php?article=$1 [QSA,L] 

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^example.com [NC] 
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$ 
RewriteCond %{REQUEST_URI} !^/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$ 
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301,NC] 

Options +FollowSymLinks 

RewriteOptions inherit 
Header set Access-Control-Allow-Origin "*" 
Header set Access-Control-Allow-Origin: "https://www.example.com" 
Header set Access-Control-Allow-Origin: "https://example.com" 
Header set Access-Control-Allow-Origin: "https://*.example.com" 
Header set Access-Control-Allow-Origin: "https://src.example.com" 
Header set Access-Control-Allow-Origin: "https://example.com/*" 
Header set Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT" 
Header set Strict-Transport-Security "max-age=31536000" env=HTTPS 

AddDefaultCharset utf-8 

<Files error_log> 
    Order allow,deny 
    Deny from all 
    Satisfy All 
</Files> 
+0

あなたが現在または親のhtaccessファイル内の他の書き換えルールを持っていますか?これは、バニラ2.4のApacheインストールで後続のスラッシュを追加しません。 – sepehr

+0

スラッシュは追加されません。 'RewriteOptions inherit'をコメントアウトして親ディレクトリルールが原因であるかどうかを確認する方法はありますか? – sepehr

答えて

1

末尾を削除するには、あなたがこれを使用することができますスラッシュ:

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} (.+)/$ 
RewriteRule^%1 [R=301,L] 
関連する問題