2017-06-24 39 views
2

如何移除%20,:,/,?還有更多來自使用.htaccess的url? 即時通訊已經嘗試從這篇文章的代碼,但仍然不會取代/重定向到新的網址 .htaccess url rewrite and removing %20如何使用.htaccess從網址中移除%20

這是我的.htaccess代碼

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] 

我的鏈接
http://localhost/web/content.php?judul=Fate/Apocrypha
http://localhost/web/content.php?judul=Isekai%20wa%20Smartphone%20to%20Tomo%20ni

我想要的 「%20」 和 「/」 替換爲 「 - 」 像這樣的。
http://localhost/web/content.php?judul=Fate-Apocrypha/
http://localhost/web/content.php?judul=Isekai-wa-Smartphone-to-Tomo-ni/

+0

從這裏看起來像你試圖解決從瀏覽器輸入,而不是從你的web應用的輸出,'20% '是一個url編碼的空格字符,不要在URL表示中放置空格,並且它們不會以這種方式進行編碼。 – Scuzzy

+0

鏈接自動生成' Jazuly

+0

你可以使用這樣

回答

0

您可以將最後一個重寫規則前加上這條規則:

# 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

工作,但我的內容不顯示.. – Jazuly

+0

你可以在這裏檢查我的網站http://stanime.pe.hu/我測試了上傳它.. 你可以看到你的網址,我希望你能幫助我:D 即時通訊使用urldecode和urlencode我的.htaccess https://github.com/jazuly/ahp/blob/master/.htaccess因爲沒有人工作,即時刪除全部 – Jazuly

+0

是啊因爲即時通訊使用urlencode和解碼空間將取代「+ 「,但有些字符如」/「和」:「可以用%2xx進行轉換...我可以用」 - 「或」+「替換它嗎? – Jazuly

0

使用此代碼,希望它會幫助你。

# 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] 

注意 - 必須補充一點,你需要修復這些URL也的來源,因爲它實在是不正常的是這樣獲得的URL。

+0

在我的網址STIL越來越%20 – Jazuly

+0

你能重寫模塊RewriteEngine On –

+0

我嘗試這一項工作,但沒有找到顯示,內容不顯示, 'RewriteCond%{THE_REQUEST}^[AZ] {3,} \ s/+([^%20] *)%20 ([^ \ s] *)[NC] '
'RewriteRule^/%1-%2 [L,NE,R]' – Jazuly

相關問題