2017-01-14 2 views
1

Ich mache einen Blog in PHP. Ich möchte den Menschen eine URL-Abfrage zu laden, um der Lage sein, eine Seite mit, zum Beispiel:Entfernen des abschließenden Schrägstrichs zwischen Verzeichnis und URL-Abfrage in htaccess

blog.mysite.com/article?a=my_cool_article

ich nicht wirklich eine „-Artikel haben "Verzeichnis, ich habe nur eine Datei namens article.php

ich in .htaccess folgend bin mit intern umleiten Anfragen:

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

Es funktioniert gut, aber wHE n Ich versuche, es zu benutzen, es fügt einen Schrägstrich zwischen article und ? .. Es ändert die URL wie folgt aussehen:

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

Ich habe hier eine Menge Lösungen ausprobiert und kann nichts finden, was funktioniert. Danke, dass du dir die Zeit zum Lesen genommen hast!


Hier sind meine bestehenden Regeln:

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

Haben Sie andere Rewrite-Regeln in der aktuellen oder übergeordneten .htaccess-Dateien ? Bei einer Installation von vanilla 2.4 apache wird kein abschließender Schrägstrich hinzugefügt. – sepehr

+0

Fügt immer noch keinen abschließenden Schrägstrich hinzu. Wie wäre es mit dem Kommentar "RewriteOptions erben", um zu sehen, ob es wegen der übergeordneten Verzeichnisregeln ist? – sepehr

Antwort

1

einen nachgestellten entfernen Slash Sie diese verwenden können:

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} (.+)/$ 
RewriteRule^%1 [R=301,L] 
Verwandte Themen