.htaccess 重写URL中的GET变量
我正在使用WordPress的永久链接结构%category%/%postname%/和以下htaccess:.htaccess 重写URL中的GET变量,.htaccess,mod-rewrite,url-rewriting,rewrite,.htaccess,Mod Rewrite,Url Rewriting,Rewrite,我正在使用WordPress的永久链接结构%category%/%postname%/和以下htaccess: <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L]
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^(.+)/gallery/$ $1/?m=gallery [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
考虑您提供的URL示例(
http://www.example.com/category/postname/gallery/
=>http://www.example.com/category/postname/?m=gallery
)您需要这样的线路:
RewriteRule ^(.+)/gallery/$ $1/?m=gallery [QSA]
/
[QSA]
标志(实际上可能并不需要)RewriteRule^index\.php$-[L]
显然,您可以确保WordPress将生成此类URL:
http://www.example.com/category/postname/gallery/
这一切都是有道理的,但它似乎不起作用。你认为WordPress正在做什么吗?一个接一个地尝试:1)将QSA
添加到最后一条规则:RewriteRule/index.php[QSA,L]
2)在答案3)的规则中添加L
标志,如果仍然没有。。您可以完全控制Apache(可以编辑配置文件),然后启用重写调试(rewriteloglevel9
),重新启动httpd并查看重写日志(在尝试访问此类URL之后)——它应该会告诉您哪里出了问题。