2017-06-24 5 views
2

wie% 20,:, /, entfernen? und viele mehr von URL mit .htaccess? ich versuche bereits Code von diesem Beitrag, aber immer noch nicht ersetzen/Redirect auf neue URL .htaccess url rewrite and removing %20.So entfernen Sie% 20 von der URL mit .htaccess

dies mein .htaccess Code

RewriteEngine On 
RewriteBase/

# external redirect from actual URL to pretty one (remove query string) 
RewriteCond %{THE_REQUEST} \s/+content\.php\?judul=([^\s&]+) [NC] 
RewriteRule^%1? [R=302,L,NE] 

# convert all space (%20) to hyphen 
RewriteRule "^(\S*) +(\S* .*)$" $1-$2 [N,NE] 
RewriteRule "^(\S*) (\S*)$" $1-$2 [L,R=302,NE] 

# rewrite rule to call actual PHP handler 
RewriteRule ^([^./]+)\.html$ content.php?judul=$1 [L,QSA,NC] 

meinen Link
http://localhost/web/content.php?judul=Fate/Apocrypha
http://localhost/web/content.php?judul=Isekai%20wa%20Smartphone%20to%20Tomo%20ni

i "% 20" und "/" ersetzt werden soll mit "-" wie dieser.
http://localhost/web/content.php?judul=Fate-Apocrypha/
http://localhost/web/content.php?judul=Isekai-wa-Smartphone-to-Tomo-ni/

+0

Von hier sieht es aus wie Sie versuchen, die Eingabe von dem Browser anzusprechen und nicht die Ausgabe von Ihrer Web-Anwendung, '% 20 'ist ein url-codiertes Leerzeichen, setze keine Leerzeichen in URL-Notationen und sie codieren nicht so. – Scuzzy

+0

, die automatische Erzeugung Verknüpfung von ' Jazuly

+0

Sie die PHP-Raum entfernen Funktion wie diese

Antwort

0

Sie können diese zwei Regeln vor Ihrer letzten Rewrite-Regel hinzufügen:

# replace %20 and/in QUERY_STRING by hyphen 
RewriteCond %{QUERY_STRING} "^([^/]*?)(?:/|%20)+([^/]+?(?:/|%20)+.*)$" 
RewriteRule^%{REQUEST_URI}?%1-%2 [N,NE] 

RewriteCond %{QUERY_STRING} "^([^/]*?)(?:/|%20)+([^/]+?)/?$" 
RewriteRule^%{REQUEST_URI}?%1-%2/ [L,R=302,NE] 
+0

Arbeit, aber, mein Inhalt nicht angezeigt .. – Jazuly

+0

Sie können mein Web hier überprüfen http://stanime.pe.hu/ im getestet Upload es .. können Sie die URL von sich selbst sehen, hoffe, Sie können mir helfen: D ich benutze urldecode und urlencode meine .htaccess https://github.com/jazuly/ahp/blob/master/.htaccess da niemand arbeitet, ich lösche alle – Jazuly

+0

yeah Ursache im using urlencode und decode Raum wird durch "+ ersetzen ", aber einige Zeichen wie"/"und": ", die mit% 2xx konvertieren ... kann ich es durch" - "oder" + "ersetzen? – Jazuly

0

Verwenden Sie diesen Code, hoffe, es wird Ihnen helfen.

# remove spaces from start or after/
RewriteRule ^(.*/|)[\s%20]+(.+)$ $1$2 [L] 

# remove spaces from end or before/
RewriteRule ^(.+?)[\s%20]+(/.*|)$ $1$2 [L] 

# replace spaces by - in between 
RewriteRule ^([^\s%20]*)(?:\s|%20)+(.*)$ $1-$2 [L,R] 

Note- muss hinzufügen, dass Sie die Quelle dieser URLs auch repariert werden muss, weil es wirklich nicht normal ist immer URLs so zu sein.

+0

stil% bekommen 20 in meiner url – Jazuly

+0

haben aktivieren Sie Rewrite-Modul in htaccess, RewriteEngine On –

+0

Ich versuche dieses eine Arbeit, aber Anzeige nicht gefunden, Inhalt nicht angezeigt, 'RewriteCond% {THE_REQUEST}^[AZ] {3,} \ s/+ ([^% 20] *)% 20 ([^ \ s] *) [NC] '
' RewriteRule^/% 1% 2 [L, NE, R] ' – Jazuly

Verwandte Themen