我正在重建一个旧网站,并且有一堆旧网址,我正在重新编写问题。
例如,我的一些旧网址的结构如下:
mydomain.com/?x=about-us **and** mydomain.com/?x=services
我希望这些示例能够重写或重定向到以下内容:
mydomain.com/about-us **and** mydomain.com/services
基本上,如果网址中出现'?x =',我想将其删除。
目前我在.htaccess中唯一的其他cond /规则是删除'.php'。扩展。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
这很好用,并允许我编写没有'.php'扩展名的内部链接,如下所示:
<a href="about-us">link</a>
这将我发送到'mydomain.com/about-us',这就是我想要的。我的问题是使用'?x ='
处理网址任何帮助将不胜感激,谢谢。
答案 0 :(得分:0)
您可以在站点根目录中使用这些规则.htaccess:
RewriteEngine On
# external redirect from actual URL to pretty one
RewriteCond %{THE_REQUEST} \s/+(?:index\.php)?\?x=([^\s&]+)\s [NC]
RewriteRule ^ /%1? [R=301,L,NE]
# add .php extension
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+?)/?$ $1.php [L]
# internal forward from pretty URL to actual one
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([\w-]+)/?$ ?x=$1 [L,QSA]