我对htaccess和mod_rewrite没有太多经验,但是如何删除?来自一个类似于site.com/?page
的网址,因此它看起来像site.com/page
?
我现在正在尝试这个:
RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(index\.php)?\?([^&\ ]+)
RewriteRule ^ /%1? [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?$1 [L]
但它只是将所有内容重定向到site.com
索引页,而网址中没有任何其他内容。
答案 0 :(得分:0)
您的反向引用不正确。您希望匹配%{THE_REQUEST}
中的第二个分组,而不是第一个分组(index.php
)。所以你的第一条规则应该是这样的:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(index\.php)?\?([^&\ ]+)
RewriteRule ^ /%2? [L,R=301]
# 2 here--------^
第二组将是([^&\ ]+)
匹配。
答案 1 :(得分:0)
根据你的问题,引用:
“...如何从URL中删除?
,如下所示:
site.com/?page
所以它看起来像site.com/page
? “
这样做:
RewriteEngine On
RewriteRule .* /%{QUERY_STRING}? [L]