我的 .htaccess 中有以下逻辑:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule notes/(.*?) notes/?u=/$1
</IfModule>
但是,由于某种原因,这总是会从输出中删除查询字符串。因此,例如,这是我 git 的结果:
http://localhost:8888/notes/tifffilmtips > http://localhost/notes/
但是,如果我将 RewriteRule 更改为RewriteRule notes/(.*?) notes/u=/$1
,不包括?
之前的u=
,结果是:
http://localhost:8888/notes/tifffilmtips > http://localhost/notes/u=/tifffilmtips
所以由于某种原因,输出总是丢弃生成的查询字符串。为什么会这样?我尝试了不同的标志,但找不到可以按预期工作的标志,也找不到其他有类似问题的人的参考。
编辑:
这是第一部分工作的完整 htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{QUERY_STRING} ^$
RewriteBase /magazine/wordpress/
RewriteRule ^notes/(.*)$ notes/?u=/$1 [QSA,NC,L]
</IfModule>
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /magazine/wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /magazine/wordpress/index.php [L]
</IfModule>
# END WordPress