我想用.htaccess
重写管理页面URL。我想将其更改为:
http://example.com/wp-admin/admin.php?page=whatever&id=5&var=10
至
http://example.com/wp-admin/whatever?id=5&var=10
现在我有:
RewriteEngine On
RewriteRule ^members$ admin.php?page=members& [L,E=CLEAN_CONTACT_URL:1,QSA]
RewriteRule ^add-members$ admin.php?page=add-members [L,E=CLEAN_CONTACT_URL:1,QSA]
RewriteRule ^delete$ admin.php?page=delete& [L,E=CLEAN_CONTACT_URL:1,QSA]
RewriteCond %{QUERY_STRING} ^page=(.*)$
RewriteCond %{ENV:REDIRECT_CLEAN_CONTACT_URL} !1
RewriteRule ^admin.php$ /wp-admin/%1?%2 [R,L]
将其更改为:
http://example.com/wp-admin/whatever&id=5&var=10
我不介意在我的
.htaccess
. 不过,如果有更好的方法,我很乐意看到!
我使用内部和外部重定向,因此当您单击管理URL时,它会转到wp-admin/admin.php?page=somewhere
, 它重写浏览器的URL,然后查找重写的URL。我想使用\'漂亮\'的管理链接。示例:
http://example.com/wp-admin/members
易于记忆和直观。最终,我将重命名
/wp-admin
到
/user
也
SO网友:awei
你可以试试这个(抱歉,之前没有测试过)。有关说明,请参阅内联注释:
RewriteEngine On
## if any string separated by | is matched, it will append to ?page=
RewriteRule ^(members|add-members|delete)$ admin.php?page=%1 [L,E=CLEAN_CONTACT_URL:1,QSA]
## If querystring starts with page= and is followed by any string separated by |
## put that in the first group. Then put any other characters in second group
RewriteCond %{QUERY_STRING} ^page=(members|add-members|delete)(.*)$
RewriteCond %{ENV:REDIRECT_CLEAN_CONTACT_URL} !1
RewriteRule ^admin.php$ /wp-admin/%1?%2 [R,L]
您可能可以将规则重写为更通用的规则。您面临的主要问题是:
RewriteCond %{QUERY_STRING} ^page=(.*)$
那是
(.*)$
匹配所有字符,包括后续字符
&foo=bar
所以整个querystring被归为
%1
还有你的
%2
为空。
SO网友:Ethan O\'Sullivan
我不太确定你的最终目标是什么,但据我所知,我的方法是这样的。在您的.htaccess
在<IfModule mod_rewrite.c>
标签:
RewriteCond %{QUERY_STRING} (^|&)page=(.*)
RewriteRule ^wp-admin/admin.php(.*)$ wp-admin [R=301,L]]
基于默认值
.htaccess
由WordPress生成,现在在自定义
RewriteRule
:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# Custom Rules
RewriteCond %{QUERY_STRING} (^|&)page=(.*)
RewriteRule ^wp-admin/admin.php(.*)$ wp-admin [R=301,L]
</IfModule>
这将重定向页面,例如:
http://example.com/wp-admin/admin.php?page=whatever&id=5&var=10
至
http://example.com/wp-admin?page=whatever&id=5&var=10
如果您可以根据一些示例URL明确您的问题,希望您的预期结果是什么,我可以给您一个更具体的答案。