通过网址重写从网址中删除数字

时间:2014-07-28 06:08:02

标签: php .htaccess mod-rewrite

我正在尝试找到一种方法来重写我的URL,以便IF变量p的值以数字开头,从URL中删除该数字,并使用p的值重写URL,如下所示:

domain.com/index.php?p=23_Product&ms=0

重写为:

domain.com/Product&ms=0

我当前的htaccess文件看起来像这样,一切都按照我想要的方式工作(除了数字删除部分):

RewriteEngine On

RewriteCond %{THE_REQUEST} /index\.php\?p=((?!(?:admin|superadmin|[^&]*?edit))[^\s&]+)(?:&(\S+))? [NC]
RewriteRule ^ /%1?%2 [R=302,L,NE]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+?)/?$ index.php?p=$1 [L,QSA]

我尝试进行此修改但是我得到了一个重定向循环:

RewriteEngine On

RewriteCond %{THE_REQUEST} /index\.php\?p=([0-9]{0,99})(?:&(\S+))? [NC]
RewriteRule ^ /%2 [R=302,L,NE]

RewriteCond %{THE_REQUEST} /index\.php\?p=((?!(?:admin|superadmin|[^&]*?edit))[^\s&]+)(?:&(\S+))? [NC]
RewriteRule ^ /%1?%2 [R=302,L,NE]


RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^[0-9]{0,99}(.+?)/?$ index.php?p=$2 [L,QSA]
你能告诉我我做错了什么吗? 感谢

0 个答案:

没有答案