2015-04-03 62 views
0

我需要将查询字符串中第一个参数的名称从p(小写)更改为P(大写)。它是查询字符串中的第一个参数。如何使用.htaccess替换查询字符串中的第一个参数名称?

例如,我需要的URL从改变:

http://www.example.com/shop/?p=product_name 

http://www.example.com/shop/?P=product_name 

的框架是WordPress的。

的代码的.htaccess:

# BEGIN WordPress 
 
    <IfModule mod_rewrite.c> 
 
     RewriteEngine On 
 
     RewriteBase/
 
     RewriteCond %{QUERY_STRING} ^p=([^&])$ 
 
     RewriteRule ^securestore/?$ $0?P=%1 [L,NC,R=302] 
 
     RewriteRule ^index\.php$ - [L] 
 
     RewriteCond %{REQUEST_FILENAME} !-f 
 
     RewriteCond %{REQUEST_FILENAME} !-d 
 
     RewriteRule . /index.php [L] 
 
     RedirectMatch 301 ^(.*)/EcoSupp$ $1 
 
    </IfModule>

+0

这有单独显示在这里SO约62392363492例子。所有这些例子都不适合你? (你在发布问题之前寻找答案,是不是?) – arkascha 2015-04-03 09:19:14

回答

1

您可以在DOCUMENT_ROOT/.htaccess文件中使用此代码:

RewriteEngine On 

RewriteCond %{QUERY_STRING} ^p=([^&]+) 
RewriteRule ^securestore/?$ $0?P=%1 [L,NC,R=301] 
+0

谢谢anubhava提供你的快速回复。我试过你的解决方案,但它没有奏效。我正在wordpress环境中工作。 另一个问题:你为什么使用302而不是301? 这里是在htacess代码: #BEGIN WordPress的 RewriteEngine叙述在 RewriteBase/ 重写规则^索引\ .PHP $ - [L] 的RewriteCond%{REQUEST_FILENAME} -f 的RewriteCond %{REQUEST_FILENAME}!-d RewriteRule。 /index.php [L] RedirectMatch 301 ^(。*)/ EcoSupp $ $ 1 RewriteCond%{QUERY_STRING}^p =([^&])$ RewriteRule^shop /?$ $ 0?P =%1 [L ,NC,R = 302] #END WordPress – sam 2015-04-03 10:03:35

+0

anubhava - 我改变了htacess文件并打开一个新的浏览器,但它没有奏效。我用htaccess文件的内容修改了我的问题。 谢谢,山姆 – sam 2015-04-03 11:16:48

+0

http://www.ecosupp.tempurl.co.il/securestore/?p=product_name 这是开发网站。该网站有一个即将推出的插件,因此外部用户将无法访问该页面。只有登录到WordPress的系统的管理员。 谢谢,山姆 – sam 2015-04-03 11:34:56

相关问题