1

我对 htaccess 和 mod_rewrite 或任何东西没有太多经验,但是如何删除 ? 从一个看起来像这样的 URL: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索引页面,而 url 中没有任何其他内容。

4

1 回答 1

0

您的反向引用不正确。您想匹配来自 的第二个分组%{THE_REQUEST},而不是第一个(即index.php)。所以你的第一条规则应该是这样的:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(index\.php)?\?([^&\ ]+)
RewriteRule ^ /%2? [L,R=301]
# 2 here--------^

第二组将是([^&\ ]+)比赛。

于 2012-12-10T06:33:31.923 回答