我正在尝试找到一种方法来重写我的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]
你能告诉我我做错了什么吗?
感谢