我无法让这个工作。我想要
http://localhost/test/post.php?id=15
显示
http://localhost/test/post/15
我尝试加载没有css的页面,并向我显示我的自定义程序404错误页面
Options -Indexes -MultiViews +FollowSymlinks
RewriteEngine On
RewriteBase /test/
ErrorDocument 404 /errors/404.php
RewriteCond %{QUERY_STRING} ^id=(.+)$ [NC]
RewriteRule ^post\.php post/%1? [R,L]
请帮帮我!
答案 0 :(得分:1)
您需要%{THE_REQUEST}
变量。 THE_REQUEST
变量表示Apache从您的浏览器收到的原始请求,并且在执行某些重写规则后不会被覆盖。此变量的示例值为GET /index.php?id=123 HTTP/1.1
。
您的代码将是:
ErrorDocument 404 /errors/404.php
Options -Indexes -MultiViews +FollowSymlinks
RewriteEngine On
RewriteBase /test/
RewriteCond %{THE_REQUEST} /post\.php\?id=([^\s&]+) [NC]
RewriteRule ^ post/%1? [R=302,L]
RewriteRule ^post/([^/.]+)/?$ post.php?id=$1 [L,QSA,NC]