Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.4k views
in Technique[技术] by (71.8m points)

php - How to rewriterule URL using .htaccess

how to rewriterule for link like this

http://stanime.pe.hu/content.php?idf=15&link=Katsugeki--Touken+Ranbu

to http://stanime.pe.hu/15/Katsugeki--Touken+Ranbu

im encode and decode my url using Urlencode and urldecode

in database Collation im using latin1_swedish_ci

so, space will replace with + and / replace with %2f and more...

this my .htacces code

    RewriteEngine On

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

# internal forward from pretty URL to actual one
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ content.php?link=$1 [B,L,QSA]
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

First you need to add this directive in your vhost or http.conf file:

AllowEncodedSlashes On

This will allow encoded slash character i.e. %2F in URLs.

You can use these rules in your site root .htaccess:

RewriteEngine On

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

# internal forward from pretty URL to actual one
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([w-]+)/(.+)$ content.php?idf=$1&link=$2 [B,L,QSA]

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...