2017-06-24 11 views
2

%20、:、/ ,?を削除するにはどうすればいいですか? .htaccessでurlからもっと多くのものを入手できますか? 私はすでにこの投稿からコードを試していますが、新しいURLに置き換えたりリダイレクトしたりすることはありません .htaccess url rewrite and removing %20.htaccessでURLから%20を削除するには

この私が "%20" と "/" に置き換えたい
http://localhost/web/content.php?judul=Fate/Apocrypha
http://localhost/web/content.php?judul=Isekai%20wa%20Smartphone%20to%20Tomo%20ni

私の.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-wa-Smartphone-to-Tomo-ni/

+0

ここからは、ブラウザではなくWebアプリケーションからの出力、 '%20からの入力に対処しようとしているように見えます'はURLでエンコードされたスペース文字ですが、URLの表記にスペースを入れないでください。エンコードされません。あなたはhtaccessファイルで書き換えする方法を、この Scuzzy

+0

、私はそれを置き換えることができます - – Jazuly

+0

から生成自動リンク –

答えて

0

あなたはあなたの最後の書き換えルールの前にこれらの2つのルールを追加することができます。

# 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

uは私のWebをhttp://stanime.pe.hu/で確認できます。 uは自分でURLを見ることができます。 私はurldecodeとurlencodeを使用しています。私の.htaccess https://github.com/jazuly/ahp/blob/master/.htaccess誰も仕事していないので、私はすべてを削除します – Jazuly

+0

私はurlencodeを使用して、 "、%2xxで変換される"/"や": "のような文字は、" - "または" + "で置き換えることはできますか? – Jazuly

0

このコードを使用し、それはあなたを助けることを願っています。それは、このようなURLを取得することが本当に正常ではありませんので、

# 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のソースを修正する必要があることを追加する必要があります。

+0

STIL私のURL – Jazuly

+0

で20%を取得し、あなたが書き換えモジュールを使用可能でしたhtaccessでRewriteEngineを表示 –

+0

私はこの1つの作品を試してみましたが、表示されていないコンテンツが表示されていません 'RewriteCond%{THE_REQUEST}^[AZ] {3、} \ s/+([^%20] *)%20 ([^ \ s] *)[NC] '
' RewriteRule^/%1-%2 [L、NE、R] ' – Jazuly

関連する問題