我希望能够在子目录中重写一个简单的php GET请求:
http://localhost:8888/test/o/u/?username=jakepunton
看起来像这样:
http://localhost:8888/test/o/u/jakepunton/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?u/(.*?)/?$ u/index.php?username=$1 [L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ u/index\.php\?username=([^\&\ ]+)
RewriteRule ^/?index\.php$ /u/%1? [L,R=301]
我看过here,但不知道我在看什么。
我该如何解决这个问题?
答案 0 :(得分:1)
假设test/o/u/
是真实目录,则可以在test/o/u/.htaccess
中使用以下规则:
RewriteEngine On
RewriteBase /test/o/u/
RewriteCond %{THE_REQUEST} \?username=([^\&\s]+)\s [NC]
RewriteRule ^$ %1? [L,R=301,NE]
RewriteCond %{THE_REQUEST} \?username=([^\&]+)&(edit)[=\s] [NC]
RewriteRule ^$ %1/%2? [L,R=301,NE]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/(edit)/?$ index.php?username=$1&$2=true [L,QSA,NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ index.php?username=$1 [L,QSA]