我正在做一个小博客,可以让它的url看起来像这样:
From: http://127.0.0.1/index.php?post=the-story-of-us
To: http://127.0.0.1/view/the-story-of-us我试过了,但我得到了404 not found.
RewriteEngine on
RewriteCond %{THE_REQUEST} ^(GET|POST|HEAD)\ /index\.php\?post=([^&]+)
RewriteRule ^ /view/%2/? [L,R=301]发布于 2016-06-11 22:27:26
我不理解你的RewriteCondition,但是RewriteRule应该是这样的:
RewriteEngine on
RewriteBase /
RewriteRule ^view/(.*)/? ./index.php?post=$1 [L,R=301]发布于 2016-06-12 00:23:49
您当前的规则仅处理这种情况:将旧url重定向到新url。
(顺便说一句,+1表示使用THE_REQUEST避免重定向循环)
您还需要处理这种情况:(在内部)将新的重写为旧的url。
下面是htaccess应该是什么样子的
RewriteEngine On
# Redirect /index.php?post=XXX to /view/XXX
RewriteCond %{THE_REQUEST} \s/index\.php\?post=([^&\s]+)\s [NC]
RewriteRule ^ /view/%1? [L,R=301]
# Internally rewrite back /view/XXX to /index.php?post=XXX
RewriteRule ^view/([^/]+)$ /index.php?post=$1 [L]https://stackoverflow.com/questions/37764756
复制相似问题