Frage

Ich brauche ein paar RewriteRules einzurichten, um eine URL zu umleiten, die einen Raum in sich hat. Ich habe dies versucht:

RewriteRule ^article/with%20spaces.html$ /article/without_spaces.html [R=301,L]

... aber es funktioniert nicht. statt% 20 verursacht einen 500 Internal Server Error in einem Raum setzen. Wie füge ich einen Raum?

War es hilfreich?

Lösung

Versuchen Sie, ein \ vor Ihrem Platz setzen es zu entkommen.

RewriteRule ^article/with\ spaces.html$ /article/without_spaces.html [R=301,L]

Andere Tipps

Sie können nur den Raum mit einem \ entkommen

RewriteRule ^article/with\ spaces.html$ /article/without_spaces.html [R=301,L]

Wenn Sie die Komplexität zu entkommen jeden Raum vermeiden wollen (zum Beispiel, wenn Sie planen, diese Datei automatisch generiert haben), können Sie einfach Anführungszeichen verwenden:

RewriteRule "^article/with spaces.html$" /article/without_spaces.html [R=301,L]

Darüber hinaus können diese Anführungszeichen verwendet werden, die mit einem erwarteten Argument zu umhüllen:

RewriteRule "^article/with spaces.html$" "/article/without_spaces.html" [R=301,L]
RewriteRule ^article/with[\ |%2520]spaces.html$ /article/without_spaces.html [R=301,L]

Die erste Option ersetzt einen Raum, während die zweite harte% 20 in der URL codiert ersetzt.

Ah, ich habe eine Lösung gefunden: Verwenden Sie den Regex-Stil, einen Raum zu zeigen:

RewriteRule ^article/with\sspaces.html$ ...

Obwohl, ich vermute, dass dies auch alle anderen Leerzeichen entsprechen würde (Tabs, etc.), aber ich glaube nicht, dass viel von einem Problem sein wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top